Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | 34x 34x 34x 34x 34x 34x | import defaults from '../../defaults'; const defaultHotkeyBindings = defaults.hotkeyBindings; /** * Migrates old hotkey definitions from localStorage to the new format * Old format: 'hotkey-definitions' containing full hotkey definitions array * New format: 'user-preferred-keys' containing hashed command keys with their key bindings * * @private */ function migrateOldHotkeyDefinitions({ generateHash, }: { generateHash: (definition: Record<string, unknown>) => string; }): void { try { const oldHotkeyDefinitions = localStorage.getItem('hotkey-definitions'); const migrated = localStorage.getItem('hotkeys-migrated'); if (!oldHotkeyDefinitions || migrated === 'true') { return; } const oldDefinitions = JSON.parse(oldHotkeyDefinitions); Iif (!Array.isArray(oldDefinitions) || oldDefinitions.length === 0) { return; } const defaultBindings = defaultHotkeyBindings || []; const userPreferredKeys = JSON.parse(localStorage.getItem('user-preferred-keys') || '{}'); oldDefinitions.forEach(oldDefinition => { Iif (!oldDefinition.commandName || !oldDefinition.keys) { return; } const matchingDefault = defaultBindings.find(defaultBinding => { const sameCommand = defaultBinding.commandName === oldDefinition.commandName; const oldOptions = oldDefinition.commandOptions || {}; const defaultOptions = defaultBinding.commandOptions || {}; const sameOptions = JSON.stringify(oldOptions) === JSON.stringify(defaultOptions); return sameCommand && sameOptions; }); Iif ( !matchingDefault || JSON.stringify(matchingDefault.keys) !== JSON.stringify(oldDefinition.keys) ) { const commandHash = generateHash({ commandName: oldDefinition.commandName, commandOptions: oldDefinition.commandOptions || {}, }); userPreferredKeys[commandHash] = oldDefinition.keys; console.debug(`HotkeysManager: Migrated custom hotkey for ${oldDefinition.commandName}`); } }); localStorage.setItem('user-preferred-keys', JSON.stringify(userPreferredKeys)); localStorage.setItem('hotkeys-migrated', 'true'); localStorage.removeItem('hotkey-definitions'); console.debug('HotkeysManager: Successfully migrated hotkey definitions to new format'); } catch (error) { console.error('HotkeysManager: Error migrating hotkey definitions', error); localStorage.setItem('hotkeys-migrated', 'false'); } } export default migrateOldHotkeyDefinitions; |