From def1cacf77eb10894ff4597a1d431078df1bb9e4 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Tue, 9 Jun 2026 10:38:03 +0800 Subject: [PATCH] feat(ui): add Mod+B shortcut to toggle sidebar --- apps/desktop/src/App.vue | 7 +++++++ apps/desktop/src/i18n/locales/en.ts | 1 + apps/desktop/src/i18n/locales/es.ts | 1 + apps/desktop/src/i18n/locales/it.ts | 1 + apps/desktop/src/i18n/locales/pt-BR.ts | 1 + apps/desktop/src/i18n/locales/zh-CN.ts | 1 + apps/desktop/src/i18n/locales/zh-TW.ts | 1 + apps/desktop/src/lib/keyboardShortcuts.ts | 4 ++++ apps/desktop/src/lib/shortcutRegistry.ts | 9 ++++++++- 9 files changed, 25 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index acafdccb6..87c68655d 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -51,6 +51,7 @@ import { isResetZoomShortcut, isRefreshDataShortcut, isSaveShortcut, + isToggleSidebarShortcut, isZoomInShortcut, isZoomOutShortcut, } from "@/lib/keyboardShortcuts"; @@ -790,6 +791,12 @@ function handleKeydown(e: KeyboardEvent) { void newQuery(); return; } + if (isToggleSidebarShortcut(e, shortcuts)) { + e.preventDefault(); + e.stopPropagation(); + setSidebarOpen(!sidebarOpen.value); + return; + } if (isCloseTabShortcut(e, shortcuts)) { e.preventDefault(); if (showDriverStore.value) { diff --git a/apps/desktop/src/i18n/locales/en.ts b/apps/desktop/src/i18n/locales/en.ts index c053ae3a9..1be4b6613 100644 --- a/apps/desktop/src/i18n/locales/en.ts +++ b/apps/desktop/src/i18n/locales/en.ts @@ -1878,6 +1878,7 @@ export default { shortcutRefreshData: "Refresh data", shortcutToggleTranspose: "Toggle transpose view", shortcutCancelSearch: "Cancel search", + shortcutToggleSidebar: "Toggle sidebar", shortcutScopeGlobal: "Global", shortcutScopeEditor: "SQL editor", shortcutScopeGrid: "Data grid", diff --git a/apps/desktop/src/i18n/locales/es.ts b/apps/desktop/src/i18n/locales/es.ts index bc1dc3b86..59e35b1a3 100644 --- a/apps/desktop/src/i18n/locales/es.ts +++ b/apps/desktop/src/i18n/locales/es.ts @@ -1661,6 +1661,7 @@ export default { shortcutNewQuery: "Nueva consulta", shortcutOpenSettings: "Abrir configuración", shortcutCloseTab: "Cerrar pestaña", + shortcutToggleSidebar: "Alternar barra lateral", shortcutFocusSearch: "Enfocar búsqueda", shortcutZoomInUi: "Ampliar interfaz", shortcutZoomOutUi: "Reducir interfaz", diff --git a/apps/desktop/src/i18n/locales/it.ts b/apps/desktop/src/i18n/locales/it.ts index 88165a751..4e6242d42 100644 --- a/apps/desktop/src/i18n/locales/it.ts +++ b/apps/desktop/src/i18n/locales/it.ts @@ -1807,6 +1807,7 @@ export default { shortcutNewQuery: "Nuova query", shortcutOpenSettings: "Apri impostazioni", shortcutCloseTab: "Chiudi scheda", + shortcutToggleSidebar: "Attiva/disattiva barra laterale", shortcutFocusSearch: "Focalizza ricerca", shortcutZoomInUi: "Ingrandisci UI", shortcutZoomOutUi: "Rimpicciolisci UI", diff --git a/apps/desktop/src/i18n/locales/pt-BR.ts b/apps/desktop/src/i18n/locales/pt-BR.ts index ef957ae8f..fa178a91f 100644 --- a/apps/desktop/src/i18n/locales/pt-BR.ts +++ b/apps/desktop/src/i18n/locales/pt-BR.ts @@ -1796,6 +1796,7 @@ export default { shortcutNewQuery: "Nova consulta", shortcutOpenSettings: "Abrir configurações", shortcutCloseTab: "Fechar aba", + shortcutToggleSidebar: "Alternar barra lateral", shortcutFocusSearch: "Focar na pesquisa", shortcutZoomInUi: "Aumentar zoom da UI", shortcutZoomOutUi: "Diminuir zoom da UI", diff --git a/apps/desktop/src/i18n/locales/zh-CN.ts b/apps/desktop/src/i18n/locales/zh-CN.ts index 20a3fc76f..14e3ab954 100644 --- a/apps/desktop/src/i18n/locales/zh-CN.ts +++ b/apps/desktop/src/i18n/locales/zh-CN.ts @@ -1824,6 +1824,7 @@ export default { shortcutNewQuery: "新建查询", shortcutOpenSettings: "打开设置", shortcutCloseTab: "关闭标签页", + shortcutToggleSidebar: "切换侧边栏", shortcutFocusSearch: "聚焦搜索", shortcutZoomInUi: "放大全局界面", shortcutZoomOutUi: "缩小全局界面", diff --git a/apps/desktop/src/i18n/locales/zh-TW.ts b/apps/desktop/src/i18n/locales/zh-TW.ts index 05e49e4ad..ea1745713 100644 --- a/apps/desktop/src/i18n/locales/zh-TW.ts +++ b/apps/desktop/src/i18n/locales/zh-TW.ts @@ -1700,6 +1700,7 @@ export default { shortcutNewQuery: "建立查詢", shortcutOpenSettings: "開啟設定", shortcutCloseTab: "關閉分頁", + shortcutToggleSidebar: "切換側邊欄", shortcutFocusSearch: "聚焦搜尋", shortcutZoomInUi: "放大全域介面", shortcutZoomOutUi: "縮小全域介面", diff --git a/apps/desktop/src/lib/keyboardShortcuts.ts b/apps/desktop/src/lib/keyboardShortcuts.ts index f86aa37ab..7fd9cb41d 100644 --- a/apps/desktop/src/lib/keyboardShortcuts.ts +++ b/apps/desktop/src/lib/keyboardShortcuts.ts @@ -147,6 +147,10 @@ export function isCancelSearchShortcut(event: ShortcutLikeEvent, shortcuts?: Par return matchesShortcut(event, actionShortcut("cancelSearch", shortcuts)); } +export function isToggleSidebarShortcut(event: ShortcutLikeEvent, shortcuts?: Partial): boolean { + return matchesShortcut(event, actionShortcut("toggleSidebar", shortcuts)); +} + export function isBrowserReloadShortcut(event: ShortcutLikeEvent): boolean { if (event.isComposing || event.altKey) return false; const key = normalizeKey(event.key); diff --git a/apps/desktop/src/lib/shortcutRegistry.ts b/apps/desktop/src/lib/shortcutRegistry.ts index 7c7220ea2..dd24befc3 100644 --- a/apps/desktop/src/lib/shortcutRegistry.ts +++ b/apps/desktop/src/lib/shortcutRegistry.ts @@ -15,7 +15,8 @@ export type ShortcutActionId = | "replace" | "refreshData" | "toggleTranspose" - | "cancelSearch"; + | "cancelSearch" + | "toggleSidebar"; export type ShortcutScope = "global" | "editor" | "grid" | "search"; @@ -131,6 +132,12 @@ export const SHORTCUT_DEFINITIONS: ShortcutDefinition[] = [ scope: "search", defaultShortcut: "Escape", }, + { + id: "toggleSidebar", + labelKey: "settings.shortcutToggleSidebar", + scope: "global", + defaultShortcut: "Mod+B", + }, ]; export const DEFAULT_SHORTCUT_SETTINGS: ShortcutSettings = Object.fromEntries(