diff --git a/src/pages/KeyboardShortcutsPage.js b/src/pages/KeyboardShortcutsPage.tsx similarity index 76% rename from src/pages/KeyboardShortcutsPage.js rename to src/pages/KeyboardShortcutsPage.tsx index 809d2ce6dc07..9b70defbf8af 100644 --- a/src/pages/KeyboardShortcutsPage.js +++ b/src/pages/KeyboardShortcutsPage.tsx @@ -1,6 +1,5 @@ import React from 'react'; import {ScrollView, View} from 'react-native'; -import _ from 'underscore'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import MenuItem from '@components/MenuItem'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -10,11 +9,15 @@ import useThemeStyles from '@hooks/useThemeStyles'; import KeyboardShortcut from '@libs/KeyboardShortcut'; import CONST from '@src/CONST'; +type Shortcut = { + displayName: string; + descriptionKey: 'search' | 'newChat' | 'openShortcutDialog' | 'escape' | 'copy'; +}; + function KeyboardShortcutsPage() { const styles = useThemeStyles(); const {translate} = useLocalize(); - const shortcuts = _.chain(CONST.KEYBOARD_SHORTCUTS) - .filter((shortcut) => !_.isEmpty(shortcut.descriptionKey)) + const shortcuts = Object.values(CONST.KEYBOARD_SHORTCUTS) .map((shortcut) => { const platformAdjustedModifiers = KeyboardShortcut.getPlatformEquivalentForKeys(shortcut.modifiers); return { @@ -22,16 +25,12 @@ function KeyboardShortcutsPage() { descriptionKey: shortcut.descriptionKey, }; }) - .value(); - + .filter((shortcut): shortcut is Shortcut => !!shortcut.descriptionKey); /** * Render the information of a single shortcut - * @param {Object} shortcut - * @param {String} shortcut.displayName - * @param {String} shortcut.descriptionKey - * @returns {React.Component} + * @param shortcut - The shortcut to render */ - const renderShortcut = (shortcut) => ( + const renderShortcut = (shortcut: Shortcut) => ( - {translate('keyboardShortcutsPage.subtitle')} - {_.map(shortcuts, renderShortcut)} + {translate('keyboardShortcutsPage.subtitle')} + {shortcuts.map(renderShortcut)}