feat(ui): add Mod+B shortcut to toggle sidebar

This commit is contained in:
t8y2 2026-06-09 10:38:03 +08:00
parent 171c7cd8d7
commit def1cacf77
9 changed files with 25 additions and 1 deletions

View File

@ -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) {

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -1824,6 +1824,7 @@ export default {
shortcutNewQuery: "新建查询",
shortcutOpenSettings: "打开设置",
shortcutCloseTab: "关闭标签页",
shortcutToggleSidebar: "切换侧边栏",
shortcutFocusSearch: "聚焦搜索",
shortcutZoomInUi: "放大全局界面",
shortcutZoomOutUi: "缩小全局界面",

View File

@ -1700,6 +1700,7 @@ export default {
shortcutNewQuery: "建立查詢",
shortcutOpenSettings: "開啟設定",
shortcutCloseTab: "關閉分頁",
shortcutToggleSidebar: "切換側邊欄",
shortcutFocusSearch: "聚焦搜尋",
shortcutZoomInUi: "放大全域介面",
shortcutZoomOutUi: "縮小全域介面",

View File

@ -147,6 +147,10 @@ export function isCancelSearchShortcut(event: ShortcutLikeEvent, shortcuts?: Par
return matchesShortcut(event, actionShortcut("cancelSearch", shortcuts));
}
export function isToggleSidebarShortcut(event: ShortcutLikeEvent, shortcuts?: Partial<ShortcutSettings>): 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);

View File

@ -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(