diff options
| author | Anwarul Islam <anwaarulislaam@gmail.com> | 2025-07-18 08:30:42 +0600 |
|---|---|---|
| committer | Anwarul Islam <anwaarulislaam@gmail.com> | 2025-07-18 08:30:42 +0600 |
| commit | c3caefc001e1ea6a7e5626acb1fe1054fa00a56a (patch) | |
| tree | 1780e09a517612acc9a53ca94ddb7577705947a4 /apps/web/src/stores/keybindings-store.ts | |
| parent | 8e4661951d214f917357caef9d2895f2a4f7eb1e (diff) | |
| download | opencut-c3caefc001e1ea6a7e5626acb1fe1054fa00a56a.tar.gz | |
feat: enhance keybinding import validation and improve error handling
Diffstat (limited to 'apps/web/src/stores/keybindings-store.ts')
| -rw-r--r-- | apps/web/src/stores/keybindings-store.ts | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/web/src/stores/keybindings-store.ts b/apps/web/src/stores/keybindings-store.ts index 6a72423f..6d9f5d54 100644 --- a/apps/web/src/stores/keybindings-store.ts +++ b/apps/web/src/stores/keybindings-store.ts @@ -112,6 +112,13 @@ export const useKeybindingsStore = create<KeybindingsState>()( }, importKeybindings: (config: KeybindingConfig) => { + // Validate all keys and actions + for (const [key, action] of Object.entries(config)) { + // Validate the key format + if (typeof key !== "string" || key.length === 0) { + throw new Error(`Invalid key format: ${key}`); + } + } set({ keybindings: { ...config }, isCustomized: true, @@ -198,6 +205,7 @@ function getPressedKey(ev: KeyboardEvent): string | null { // Check for special keys if (key === "tab") return "tab"; + if (key === " " || key === "space") return "space"; if (key === "home") return "home"; if (key === "end") return "end"; if (key === "delete") return "delete"; |
