From c8dbeeaf7de174d5ae2ab01b94716f68afbe942a Mon Sep 17 00:00:00 2001 From: zipg Date: Mon, 24 Aug 2026 14:33:54 +0800 Subject: [PATCH] fix(ui): keep driver store/settings page switching and tab active state (#7035) --- apps/desktop/src/App.vue | 23 +++++++++++-------- .../components/config/DriverStoreDialog.vue | 2 +- .../DriverStoreDialog.visibility.spec.ts | 12 ++++++++++ .../src/components/layout/AppTabBar.vue | 9 ++++++-- .../layout/__tests__/AppTabBar.spec.ts | 9 ++++++++ .../__tests__/settingsPageNavigation.spec.ts | 8 +++++++ 6 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 apps/desktop/src/components/config/__tests__/DriverStoreDialog.visibility.spec.ts diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index 7082344288..a50c5377e4 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -535,6 +535,13 @@ function openSettings(initialTab = "appearance", initialSection?: string) { activateSettingsPage(); } +type MainContentSurface = "query" | "settings" | "driverStore"; + +function activateMainContentSurface(surface: MainContentSurface) { + settingsStore.settingsPageActive = surface === "settings"; + driverStoreActive.value = surface === "driverStore"; +} + watch( () => settingsStore.settingsNavigationRequest, (request) => { @@ -546,23 +553,20 @@ watch( function activateSettingsPage() { settingsPageTabOpen.value = true; - settingsStore.settingsPageActive = true; - driverStoreActive.value = false; + activateMainContentSurface("settings"); } function activateQuerySurface() { - driverStoreActive.value = false; - settingsStore.settingsPageActive = false; + activateMainContentSurface("query"); } function closeSettingsPage() { settingsPageTabOpen.value = false; - settingsStore.settingsPageActive = false; if (settingsReturnSurface.value === "driverStore" && driverStoreTabOpen.value) { - driverStoreActive.value = true; + activateMainContentSurface("driverStore"); return; } - driverStoreActive.value = false; + activateMainContentSurface("query"); } const driverStoreFocus = ref(null); @@ -578,13 +582,12 @@ function openDriverStorePage(target?: "agent" | "jdbc" | "storage" | "runtime" | driverStoreFocus.value = target ?? null; } driverStoreTabOpen.value = true; - driverStoreActive.value = true; - settingsStore.settingsPageActive = false; + activateMainContentSurface("driverStore"); } function closeDriverStorePage() { driverStoreTabOpen.value = false; - driverStoreActive.value = false; + activateMainContentSurface("query"); driverStoreActiveTab.value = "agent"; driverStoreFocus.value = null; } diff --git a/apps/desktop/src/components/config/DriverStoreDialog.vue b/apps/desktop/src/components/config/DriverStoreDialog.vue index 47f9133899..a997fa7b33 100644 --- a/apps/desktop/src/components/config/DriverStoreDialog.vue +++ b/apps/desktop/src/components/config/DriverStoreDialog.vue @@ -2224,8 +2224,8 @@ watch(driverStoreTab, (tab) => { + -