diff --git a/war/src/main/js/keyboard-shortcuts.js b/war/src/main/js/keyboard-shortcuts.js index a2ebc19c01b2..55ead72b6312 100644 --- a/war/src/main/js/keyboard-shortcuts.js +++ b/war/src/main/js/keyboard-shortcuts.js @@ -2,10 +2,10 @@ import hotkeys from "hotkeys-js" window.addEventListener("load", () => { const searchBar = document.querySelector("#search-box") - searchBar.placeholder = searchBar.placeholder + ` (${translateKeyboardShortcutForOS("CMD+K") + searchBar.placeholder = searchBar.placeholder + ` (${translateModifierKeysForUsersPlatform("CMD+K") .replace("CMD", "⌘")})` - hotkeys(translateKeyboardShortcutForOS("CMD+K"), () => { + hotkeys(translateModifierKeysForUsersPlatform("CMD+K"), () => { searchBar.focus() // Returning false stops the event and prevents default browser events @@ -14,11 +14,12 @@ window.addEventListener("load", () => { }) /** - * Translates a given keyboard shortcut, e.g. CMD+K, into an OS neutral version, e.g. CTRL+K - * @param {string} keyboardShortcut The shortcut for translation + * Given a keyboard shortcut, e.g. CMD+K, replace any included modifier keys for the user's + * platform e.g. output will be CMD+K for macOS/iOS, CTRL+K for Windows/Linux + * @param {string} keyboardShortcut The shortcut to translate */ -function translateKeyboardShortcutForOS(keyboardShortcut) { +function translateModifierKeysForUsersPlatform(keyboardShortcut) { const useCmdKey = navigator.platform.toUpperCase().indexOf("MAC") >= 0 || navigator.platform.toUpperCase() === "IPHONE" - return keyboardShortcut.replace("CMD", useCmdKey ? "CMD" : "CTRL") + return keyboardShortcut.replaceAll(/CMD|CTRL/ig, useCmdKey ? "CMD" : "CTRL") }