summaryrefslogtreecommitdiff
path: root/apps/web/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/components')
-rw-r--r--apps/web/src/components/keybinding-editor.tsx13
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/web/src/components/keybinding-editor.tsx b/apps/web/src/components/keybinding-editor.tsx
index 8735c504..bc98c5fd 100644
--- a/apps/web/src/components/keybinding-editor.tsx
+++ b/apps/web/src/components/keybinding-editor.tsx
@@ -224,10 +224,21 @@ export const KeybindingEditor = ({
reader.onload = (e) => {
try {
const config = JSON.parse(e.target?.result as string);
+ // Validate config structure
+ if (!config || typeof config !== "object") {
+ throw new Error("Invalid configuration format");
+ }
+
+ // Validate each keybinding
+ for (const [key, action] of Object.entries(config)) {
+ if (typeof key !== "string" || typeof action !== "string") {
+ throw new Error(`Invalid keybinding: ${key} -> ${action}`);
+ }
+ }
importKeybindings(config);
toast.success("Keybindings imported successfully");
} catch (error) {
- toast.error("Failed to import keybindings file");
+ toast.error(`Failed to import keybindings: ${error}`);
}
};
reader.readAsText(file);