summaryrefslogtreecommitdiff
path: root/apps/web/src/stores/keybindings/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/stores/keybindings/migrations')
-rw-r--r--apps/web/src/stores/keybindings/migrations/index.ts8
-rw-r--r--apps/web/src/stores/keybindings/migrations/v4-to-v5.ts17
2 files changed, 20 insertions, 5 deletions
diff --git a/apps/web/src/stores/keybindings/migrations/index.ts b/apps/web/src/stores/keybindings/migrations/index.ts
index 64d86ffa..e6641f41 100644
--- a/apps/web/src/stores/keybindings/migrations/index.ts
+++ b/apps/web/src/stores/keybindings/migrations/index.ts
@@ -1,18 +1,16 @@
import { v2ToV3 } from "./v2-to-v3";
import { v3ToV4 } from "./v3-to-v4";
+import { v4ToV5 } from "./v4-to-v5";
type MigrationFn = ({ state }: { state: unknown }) => unknown;
-/**
- * key = version we're migrating from
- * value = migration function
- */
const migrations: Record<number, MigrationFn> = {
2: v2ToV3,
3: v3ToV4,
+ 4: v4ToV5,
};
-export const CURRENT_VERSION = 4;
+export const CURRENT_VERSION = 5;
export function runMigrations({
state,
diff --git a/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts b/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts
new file mode 100644
index 00000000..2ab39247
--- /dev/null
+++ b/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts
@@ -0,0 +1,17 @@
+import type { KeybindingConfig } from "@/types/keybinding";
+
+interface V4State {
+ keybindings: KeybindingConfig;
+ isCustomized: boolean;
+}
+
+export function v4ToV5({ state }: { state: unknown }): unknown {
+ const v4 = state as V4State;
+ const keybindings = { ...v4.keybindings };
+
+ if (!keybindings.escape) {
+ keybindings.escape = "deselect-all";
+ }
+
+ return { ...v4, keybindings };
+}