mirror of https://github.com/vector-im/riot-web
				
				
				
			Don't change `KEYBOARD_SHORTCUTS` and do some refactoring (#7818)
							parent
							
								
									0dc1355441
								
							
						
					
					
						commit
						81f52283cf
					
				|  | @ -250,7 +250,8 @@ export const CATEGORIES: Record<CategoryName, ICategory> = { | |||
| // This is very intentionally modelled after SETTINGS as it will make it easier
 | ||||
| // to implement customizable keyboard shortcuts
 | ||||
| // TODO: TravisR will fix this nightmare when the new version of the SettingsStore becomes a thing
 | ||||
| const KEYBOARD_SHORTCUTS: IKeyboardShortcuts = { | ||||
| // XXX: Exported for tests
 | ||||
| export const KEYBOARD_SHORTCUTS: IKeyboardShortcuts = { | ||||
|     [KeyBindingAction.FormatBold]: { | ||||
|         default: { | ||||
|             ctrlOrCmdKey: true, | ||||
|  | @ -582,7 +583,7 @@ const getNonCustomizableShortcuts = (): IKeyboardShortcuts => { | |||
| }; | ||||
| 
 | ||||
| export const getCustomizableShortcuts = (): IKeyboardShortcuts => { | ||||
|     const keyboardShortcuts = KEYBOARD_SHORTCUTS; | ||||
|     const keyboardShortcuts = Object.assign({}, KEYBOARD_SHORTCUTS); | ||||
| 
 | ||||
|     keyboardShortcuts[KeyBindingAction.EditRedo] = { | ||||
|         default: { | ||||
|  | @ -607,11 +608,10 @@ export const getKeyboardShortcuts = (): IKeyboardShortcuts => { | |||
|         ...Object.entries(getCustomizableShortcuts()), | ||||
|     ]; | ||||
| 
 | ||||
|     const keyboardShortcuts: IKeyboardShortcuts = {}; | ||||
|     for (const [key, value] of entries) { | ||||
|         keyboardShortcuts[key] = value; | ||||
|     } | ||||
|     return keyboardShortcuts; | ||||
|     return entries.reduce((acc, [key, value]) => { | ||||
|         acc[key] = value; | ||||
|         return acc; | ||||
|     }, {}); | ||||
| }; | ||||
| 
 | ||||
| export const registerShortcut = (shortcutName: string, categoryName: CategoryName, shortcut: ISetting): void => { | ||||
|  |  | |||
|  | @ -17,13 +17,24 @@ limitations under the License. | |||
| import { | ||||
|     CATEGORIES, | ||||
|     CategoryName, | ||||
|     getCustomizableShortcuts, | ||||
|     getKeyboardShortcuts, | ||||
|     KEYBOARD_SHORTCUTS, | ||||
|     registerShortcut, | ||||
| } from "../../src/accessibility/KeyboardShortcuts"; | ||||
| import { Key } from "../../src/Keyboard"; | ||||
| import { ISetting } from "../../src/settings/Settings"; | ||||
| 
 | ||||
| describe("KeyboardShortcuts", () => { | ||||
|     it("doesn't change KEYBOARD_SHORTCUTS when getting shortcuts", () => { | ||||
|         const copyKeyboardShortcuts = Object.assign({}, KEYBOARD_SHORTCUTS); | ||||
| 
 | ||||
|         getCustomizableShortcuts(); | ||||
|         expect(KEYBOARD_SHORTCUTS).toEqual(copyKeyboardShortcuts); | ||||
|         getKeyboardShortcuts(); | ||||
|         expect(KEYBOARD_SHORTCUTS).toEqual(copyKeyboardShortcuts); | ||||
|     }); | ||||
| 
 | ||||
|     describe("registerShortcut()", () => { | ||||
|         it("correctly registers shortcut", () => { | ||||
|             const shortcutName = "Keybinding.definitelyARealShortcut"; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Šimon Brandner
						Šimon Brandner