diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index 34bafd8f0c..54fc0bf19e 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -43,6 +43,7 @@ import { isExecuteSqlShortcut, isFocusSearchShortcut, isObjectSourceSaveShortcutTarget, + isRefreshDataShortcut, isSaveShortcut, } from "@/lib/keyboardShortcuts"; import { isPreviewTab } from "@/lib/tabPresentation"; @@ -562,6 +563,12 @@ function handleKeydown(e: KeyboardEvent) { } return; } + if (isRefreshDataShortcut(e, shortcuts)) { + e.preventDefault(); + e.stopPropagation(); + contentAreaRef.value?.refreshData(); + return; + } if (isCloseTabShortcut(e, shortcuts)) { e.preventDefault(); if (showDriverStore.value) { diff --git a/apps/desktop/src/components/layout/ContentArea.vue b/apps/desktop/src/components/layout/ContentArea.vue index c83a101c5d..0f3498a4b6 100644 --- a/apps/desktop/src/components/layout/ContentArea.vue +++ b/apps/desktop/src/components/layout/ContentArea.vue @@ -198,7 +198,13 @@ function focusSearch(): boolean { return dataGridRef.value?.focusSearch() ?? false; } -defineExpose({ focusSearch }); +function refreshData(): boolean { + if (!dataGridRef.value) return false; + void dataGridRef.value.onToolbarRefresh(); + return true; +} + +defineExpose({ focusSearch, refreshData });