From bdd8b3fa031eec8dc5a1d92b0ad02ad5e7c0fa79 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Tue, 5 May 2026 04:14:00 +0800 Subject: [PATCH] refactor: split App.vue into composables and layout components Extract 11 composables and 5 layout components from App.vue, reducing it from 1921 to 327 lines. Unify dialog overlay style across DialogContent and DialogScrollContent for consistent backdrop appearance. --- src/App.vue | 1961 ++--------------- src/components/layout/AppDialogs.vue | 152 ++ src/components/layout/AppSidebar.vue | 50 + src/components/layout/AppTabBar.vue | 144 ++ src/components/layout/AppToolbar.vue | 122 + src/components/layout/ContentArea.vue | 241 ++ src/components/layout/EditorToolbar.vue | 159 ++ src/components/layout/UpdateDialog.vue | 61 + src/components/layout/WelcomeScreen.vue | 128 ++ .../ui/dialog/DialogScrollContent.vue | 2 +- src/composables/useAppUpdater.ts | 114 + src/composables/useDataGridActions.ts | 68 + src/composables/useDatabaseOptions.ts | 40 + src/composables/useDialogSources.ts | 242 ++ src/composables/useFileDrop.ts | 90 + src/composables/useNavigationTargets.ts | 84 + src/composables/usePanelResize.ts | 42 + src/composables/useSqlExecution.ts | 118 + src/composables/useTabScroll.ts | 26 + src/composables/useTauriEvents.ts | 55 + src/composables/useTheme.ts | 25 + src/lib/tabPresentation.ts | 71 + 22 files changed, 2217 insertions(+), 1778 deletions(-) create mode 100644 src/components/layout/AppDialogs.vue create mode 100644 src/components/layout/AppSidebar.vue create mode 100644 src/components/layout/AppTabBar.vue create mode 100644 src/components/layout/AppToolbar.vue create mode 100644 src/components/layout/ContentArea.vue create mode 100644 src/components/layout/EditorToolbar.vue create mode 100644 src/components/layout/UpdateDialog.vue create mode 100644 src/components/layout/WelcomeScreen.vue create mode 100644 src/composables/useAppUpdater.ts create mode 100644 src/composables/useDataGridActions.ts create mode 100644 src/composables/useDatabaseOptions.ts create mode 100644 src/composables/useDialogSources.ts create mode 100644 src/composables/useFileDrop.ts create mode 100644 src/composables/useNavigationTargets.ts create mode 100644 src/composables/usePanelResize.ts create mode 100644 src/composables/useSqlExecution.ts create mode 100644 src/composables/useTabScroll.ts create mode 100644 src/composables/useTauriEvents.ts create mode 100644 src/composables/useTheme.ts create mode 100644 src/lib/tabPresentation.ts diff --git a/src/App.vue b/src/App.vue index 9a669e01df..cd361157b6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,73 +1,52 @@ diff --git a/src/components/layout/AppDialogs.vue b/src/components/layout/AppDialogs.vue new file mode 100644 index 0000000000..81843adbff --- /dev/null +++ b/src/components/layout/AppDialogs.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/components/layout/AppSidebar.vue b/src/components/layout/AppSidebar.vue new file mode 100644 index 0000000000..f91c427042 --- /dev/null +++ b/src/components/layout/AppSidebar.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/components/layout/AppTabBar.vue b/src/components/layout/AppTabBar.vue new file mode 100644 index 0000000000..6d84a27e11 --- /dev/null +++ b/src/components/layout/AppTabBar.vue @@ -0,0 +1,144 @@ + + + diff --git a/src/components/layout/AppToolbar.vue b/src/components/layout/AppToolbar.vue new file mode 100644 index 0000000000..f0ff1bb340 --- /dev/null +++ b/src/components/layout/AppToolbar.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/components/layout/ContentArea.vue b/src/components/layout/ContentArea.vue new file mode 100644 index 0000000000..41904506f4 --- /dev/null +++ b/src/components/layout/ContentArea.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/components/layout/EditorToolbar.vue b/src/components/layout/EditorToolbar.vue new file mode 100644 index 0000000000..90b83fa94f --- /dev/null +++ b/src/components/layout/EditorToolbar.vue @@ -0,0 +1,159 @@ + + + diff --git a/src/components/layout/UpdateDialog.vue b/src/components/layout/UpdateDialog.vue new file mode 100644 index 0000000000..e6bcd0b510 --- /dev/null +++ b/src/components/layout/UpdateDialog.vue @@ -0,0 +1,61 @@ + + + diff --git a/src/components/layout/WelcomeScreen.vue b/src/components/layout/WelcomeScreen.vue new file mode 100644 index 0000000000..3e7be65a81 --- /dev/null +++ b/src/components/layout/WelcomeScreen.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/components/ui/dialog/DialogScrollContent.vue b/src/components/ui/dialog/DialogScrollContent.vue index f6b6dab6f2..3f3d6f2933 100644 --- a/src/components/ui/dialog/DialogScrollContent.vue +++ b/src/components/ui/dialog/DialogScrollContent.vue @@ -28,7 +28,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)