diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte
index 8d5e288db..65fa8f18b 100644
--- a/packages/web/src/App.svelte
+++ b/packages/web/src/App.svelte
@@ -1,7 +1,10 @@
+
diff --git a/packages/web/src/commands/CommandListener.svelte b/packages/web/src/commands/CommandListener.svelte
new file mode 100644
index 000000000..12dd8d5fe
--- /dev/null
+++ b/packages/web/src/commands/CommandListener.svelte
@@ -0,0 +1,26 @@
+
+
+
diff --git a/packages/web/src/commands/CommandPalette.svelte b/packages/web/src/commands/CommandPalette.svelte
index 0c56ffd16..32f3a8d7b 100644
--- a/packages/web/src/commands/CommandPalette.svelte
+++ b/packages/web/src/commands/CommandPalette.svelte
@@ -2,7 +2,9 @@
registerCommand({
id: 'commandPalette.show',
text: 'Command palette: Show',
+ keyText: 'F1',
onClick: () => visibleCommandPalette.set(true),
+ enabledStore: derived(visibleCommandPalette, $visibleCommandPalette => !$visibleCommandPalette),
});
@@ -10,6 +12,7 @@
import { filterName } from 'dbgate-datalib';
import _ from 'lodash';
+ import { derived } from 'svelte/store';
import { onMount } from 'svelte';
import { commands, visibleCommandPalette } from '../stores';
import { clickOutside } from '../utility/clickOutside';
@@ -24,7 +27,10 @@
onMount(() => domInput.focus());
- $: sortedComands = _.sortBy(Object.values($commands), 'text');
+ $: sortedComands = _.sortBy(
+ Object.values($commands).filter(x => x.enabled),
+ 'text'
+ );
$: filteredItems = (parentCommand ? parentCommand.getSubCommands() : sortedComands).filter(x =>
filterName(filter, x.text)
@@ -55,7 +61,10 @@
{#each filteredItems as command, index}
handleCommand(command)}>
- {command.text}
+
{command.text}
+ {#if command.keyText}
+
{command.keyText}
+ {/if}
{/each}
@@ -75,6 +84,8 @@
}
.command {
padding: 5px;
+ display: flex;
+ justify-content: space-between;
}
.command:hover {
background: var(--theme-bg-3);
@@ -82,4 +93,7 @@
.command.selected {
background: var(--theme-bg-selected);
}
+ .shortcut {
+ background: var(--theme-bg-3);
+ }
diff --git a/packages/web/src/commands/registerCommand.ts b/packages/web/src/commands/registerCommand.ts
index 90cca00f4..2ad3d2669 100644
--- a/packages/web/src/commands/registerCommand.ts
+++ b/packages/web/src/commands/registerCommand.ts
@@ -8,6 +8,7 @@ export interface SubCommand {
export interface GlobalCommand {
id: string;
text: string;
+ keyText?: string;
getSubCommands?: () => SubCommand[];
onClick?: Function;
enabledStore?: any;
diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte
index fb1706e4d..4da7a0aa6 100644
--- a/packages/web/src/datagrid/DataGridCore.svelte
+++ b/packages/web/src/datagrid/DataGridCore.svelte
@@ -1,6 +1,20 @@
+
+