refactor(mobile): use shared modal configuration with desktop

This commit is contained in:
Elian Doran 2025-04-12 09:51:16 +03:00
parent a8f1abb77f
commit bbd76069c1
No known key found for this signature in database
3 changed files with 49 additions and 27 deletions

View File

@ -93,6 +93,7 @@ import SwitchSplitOrientationButton from "../widgets/floating_buttons/switch_lay
import ToggleReadOnlyButton from "../widgets/floating_buttons/toggle_read_only_button.js"; import ToggleReadOnlyButton from "../widgets/floating_buttons/toggle_read_only_button.js";
import PngExportButton from "../widgets/floating_buttons/png_export_button.js"; import PngExportButton from "../widgets/floating_buttons/png_export_button.js";
import RefreshButton from "../widgets/floating_buttons/refresh_button.js"; import RefreshButton from "../widgets/floating_buttons/refresh_button.js";
import { applyModals } from "./layout_commons.js";
export default class DesktopLayout { export default class DesktopLayout {
@ -119,7 +120,7 @@ export default class DesktopLayout {
const fullWidthTabBar = launcherPaneIsHorizontal || (isElectron && !hasNativeTitleBar && isMac); const fullWidthTabBar = launcherPaneIsHorizontal || (isElectron && !hasNativeTitleBar && isMac);
const customTitleBarButtons = !hasNativeTitleBar && !isMac && !isWindows; const customTitleBarButtons = !hasNativeTitleBar && !isMac && !isWindows;
return new RootContainer(true) const rootContainer = new RootContainer(true)
.setParent(appContext) .setParent(appContext)
.optChild( .optChild(
fullWidthTabBar, fullWidthTabBar,
@ -251,17 +252,11 @@ export default class DesktopLayout {
) )
) )
) )
.child(new BulkActionsDialog()) // Remove once modals are all merged
.child(new AboutDialog())
.child(new HelpDialog())
.child(new RecentChangesDialog())
.child(new BranchPrefixDialog()) .child(new BranchPrefixDialog())
.child(new SortChildNotesDialog()) .child(new SortChildNotesDialog())
.child(new PasswordNoteSetDialog()) .child(new PasswordNoteSetDialog())
.child(new IncludeNoteDialog())
.child(new NoteTypeChooserDialog()) .child(new NoteTypeChooserDialog())
.child(new JumpToNoteDialog())
.child(new AddLinkDialog())
.child(new CloneToDialog()) .child(new CloneToDialog())
.child(new MoveToDialog()) .child(new MoveToDialog())
.child(new ImportDialog()) .child(new ImportDialog())
@ -273,8 +268,11 @@ export default class DesktopLayout {
.child(new DeleteNotesDialog()) .child(new DeleteNotesDialog())
.child(new InfoDialog()) .child(new InfoDialog())
.child(new ConfirmDialog()) .child(new ConfirmDialog())
.child(new PromptDialog())
.child(new CloseZenButton()); .child(new CloseZenButton());
applyModals(rootContainer);
return rootContainer;
} }
#buildLauncherPane(isHorizontal: boolean) { #buildLauncherPane(isHorizontal: boolean) {

View File

@ -0,0 +1,37 @@
import type RootContainer from "../widgets/containers/root_container.js";
import AboutDialog from "../widgets/dialogs/about.js";
import HelpDialog from "../widgets/dialogs/help.js";
import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js";
import RecentChangesDialog from "../widgets/dialogs/recent_changes.js";
import PromptDialog from "../widgets/dialogs/prompt.js";
import AddLinkDialog from "../widgets/dialogs/add_link.js";
import IncludeNoteDialog from "../widgets/dialogs/include_note.js";
import BulkActionsDialog from "../widgets/dialogs/bulk_actions.js";
export function applyModals(rootContainer: RootContainer) {
rootContainer
.child(new BulkActionsDialog())
.child(new AboutDialog())
.child(new HelpDialog())
.child(new RecentChangesDialog())
// .child(new BranchPrefixDialog())
// .child(new SortChildNotesDialog())
// .child(new PasswordNoteSetDialog())
.child(new IncludeNoteDialog())
// .child(new NoteTypeChooserDialog())
.child(new JumpToNoteDialog())
.child(new AddLinkDialog())
// .child(new CloneToDialog())
// .child(new MoveToDialog())
// .child(new ImportDialog())
// .child(new ExportDialog())
// .child(new UploadAttachmentsDialog())
// .child(new MarkdownImportDialog())
// .child(new ProtectedSessionPasswordDialog())
// .child(new RevisionsDialog())
// .child(new DeleteNotesDialog())
// .child(new InfoDialog())
// .child(new ConfirmDialog())
.child(new PromptDialog())
}

View File

@ -23,18 +23,11 @@ import RootContainer from "../widgets/containers/root_container.js";
import SharedInfoWidget from "../widgets/shared_info.js"; import SharedInfoWidget from "../widgets/shared_info.js";
import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js"; import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js";
import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js"; import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js";
import AboutDialog from "../widgets/dialogs/about.js";
import HelpDialog from "../widgets/dialogs/help.js";
import type AppContext from "../components/app_context.js"; import type AppContext from "../components/app_context.js";
import TabRowWidget from "../widgets/tab_row.js"; import TabRowWidget from "../widgets/tab_row.js";
import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js";
import RecentChangesDialog from "../widgets/dialogs/recent_changes.js";
import PromptDialog from "../widgets/dialogs/prompt.js";
import RefreshButton from "../widgets/floating_buttons/refresh_button.js"; import RefreshButton from "../widgets/floating_buttons/refresh_button.js";
import MobileEditorToolbar from "../widgets/ribbon_widgets/mobile_editor_toolbar.js"; import MobileEditorToolbar from "../widgets/ribbon_widgets/mobile_editor_toolbar.js";
import AddLinkDialog from "../widgets/dialogs/add_link.js"; import { applyModals } from "./layout_commons.js";
import IncludeNoteDialog from "../widgets/dialogs/include_note.js";
import BulkActionsDialog from "../widgets/dialogs/bulk_actions.js";
const MOBILE_CSS = ` const MOBILE_CSS = `
<style> <style>
@ -123,7 +116,7 @@ span.fancytree-expander {
export default class MobileLayout { export default class MobileLayout {
getRootWidget(appContext: typeof AppContext) { getRootWidget(appContext: typeof AppContext) {
return new RootContainer(true) const rootContainer = new RootContainer(true)
.setParent(appContext) .setParent(appContext)
.cssBlock(MOBILE_CSS) .cssBlock(MOBILE_CSS)
.child(new FlexContainer("column").id("mobile-sidebar-container")) .child(new FlexContainer("column").id("mobile-sidebar-container"))
@ -184,14 +177,8 @@ export default class MobileLayout {
.id("mobile-bottom-bar") .id("mobile-bottom-bar")
.child(new TabRowWidget().css("height", "40px")) .child(new TabRowWidget().css("height", "40px"))
.child(new FlexContainer("row").class("horizontal").css("height", "53px").child(new LauncherContainer(true)).child(new GlobalMenuWidget(true)).id("launcher-pane")) .child(new FlexContainer("row").class("horizontal").css("height", "53px").child(new LauncherContainer(true)).child(new GlobalMenuWidget(true)).id("launcher-pane"))
) );
.child(new BulkActionsDialog()) applyModals(rootContainer);
.child(new AboutDialog()) return rootContainer;
.child(new HelpDialog())
.child(new RecentChangesDialog())
.child(new JumpToNoteDialog())
.child(new PromptDialog())
.child(new IncludeNoteDialog())
.child(new AddLinkDialog());
} }
} }