diff --git a/apps/web/src/stores/keybindings/migrations/index.ts b/apps/web/src/stores/keybindings/migrations/index.ts index 330c7df7..71fd81a6 100644 --- a/apps/web/src/stores/keybindings/migrations/index.ts +++ b/apps/web/src/stores/keybindings/migrations/index.ts @@ -2,6 +2,7 @@ import { v2ToV3 } from "./v2-to-v3"; import { v3ToV4 } from "./v3-to-v4"; import { v4ToV5 } from "./v4-to-v5"; import { v5ToV6 } from "./v5-to-v6"; +import { v6ToV7 } from "./v6-to-v7"; type MigrationFn = ({ state }: { state: unknown }) => unknown; @@ -10,9 +11,10 @@ const migrations: Record = { 3: v3ToV4, 4: v4ToV5, 5: v5ToV6, + 6: v6ToV7, }; -export const CURRENT_VERSION = 6; +export const CURRENT_VERSION = 7; export function runMigrations({ state, diff --git a/apps/web/src/stores/keybindings/migrations/v6-to-v7.ts b/apps/web/src/stores/keybindings/migrations/v6-to-v7.ts new file mode 100644 index 00000000..8c5fd96c --- /dev/null +++ b/apps/web/src/stores/keybindings/migrations/v6-to-v7.ts @@ -0,0 +1,19 @@ +import type { KeybindingConfig } from "@/lib/actions/keybinding"; + +interface V6State { + keybindings: KeybindingConfig; + isCustomized: boolean; +} + +export function v6ToV7({ state }: { state: unknown }): unknown { + const v6 = state as V6State; + const keybindings = { ...v6.keybindings }; + + for (const key of Object.keys(keybindings) as Array) { + if (keybindings[key] === ("split-element" as never)) { + keybindings[key] = "split"; + } + } + + return { ...v6, keybindings }; +}