diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index 4909bd6d946ac3853e78302b85504bdc5ae1e73a..6d9f70521e50ead1de9ed9750bad27babd2c2039 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -119,12 +119,12 @@ global.Actual = { document.addEventListener('keydown', e => { if (e.metaKey || e.ctrlKey) { // Cmd/Ctrl+o - if (e.code === 'KeyO') { + if (e.key === 'O') { e.preventDefault(); window.__actionsForMenu.closeBudget(); } // Cmd/Ctrl+z - else if (e.code === 'KeyZ') { + else if (e.key === 'Z') { if ( e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || diff --git a/packages/desktop-client/src/components/GlobalKeys.js b/packages/desktop-client/src/components/GlobalKeys.js index 61b413b1efdbaf459222801286c0f3aee387c3ec..63b6a58fceda57b8118f34ee5c42df08a4892aec 100644 --- a/packages/desktop-client/src/components/GlobalKeys.js +++ b/packages/desktop-client/src/components/GlobalKeys.js @@ -12,17 +12,17 @@ export default function GlobalKeys() { } if (e.metaKey) { - switch (e.code) { - case 'Digit1': + switch (e.key) { + case '1': history.push('/budget'); break; - case 'Digit2': + case '2': history.push('/reports'); break; - case 'Digit3': + case '3': history.push('/accounts'); break; - case 'Comma': + case ',': if (Platform.OS === 'mac') { history.push('/settings'); } diff --git a/packages/desktop-client/src/components/accounts/TransactionsTable.js b/packages/desktop-client/src/components/accounts/TransactionsTable.js index fc334eac785dd8677eeb49a00aaae49ce57edf90..37f520618273ad8cce8ddb8d3e07aa0e43c895dc 100644 --- a/packages/desktop-client/src/components/accounts/TransactionsTable.js +++ b/packages/desktop-client/src/components/accounts/TransactionsTable.js @@ -1159,7 +1159,7 @@ function NewTransaction({ }} data-testid="new-transaction" onKeyDown={e => { - if (e.code === 'Escape') { + if (e.key === 'Escape') { onClose(); } }} @@ -1590,7 +1590,7 @@ export let TransactionTable = React.forwardRef((props, ref) => { } function onCheckNewEnter(e) { - if (e.code === 'Enter') { + if (e.key === 'Enter') { if (e.metaKey) { e.stopPropagation(); onAddTemporary(); @@ -1634,7 +1634,7 @@ export let TransactionTable = React.forwardRef((props, ref) => { } function onCheckEnter(e) { - if (e.code === 'Enter' && !e.shiftKey) { + if (e.key === 'Enter' && !e.shiftKey) { let { editingId: id, focusedField } = tableNavigator; afterSave(() => { diff --git a/packages/desktop-client/src/components/autocomplete/Autocomplete.js b/packages/desktop-client/src/components/autocomplete/Autocomplete.js index 7a9543630a80532a71fb8c8ad04c131f168c78a5..fee1ea234d470956293f9c9aecd5e0eb2b0dd91b 100644 --- a/packages/desktop-client/src/components/autocomplete/Autocomplete.js +++ b/packages/desktop-client/src/components/autocomplete/Autocomplete.js @@ -332,7 +332,7 @@ function onKeyDown( // If the dropdown is open, an item is highlighted, and the user // pressed enter, always capture that and handle it ourselves if (isOpen) { - if (e.code === 'Enter') { + if (e.key === 'Enter') { if (highlightedIndex != null) { if (inst.lastChangeType === Downshift.stateChangeTypes.itemMouseEnter) { // If the last thing the user did was hover an item, intentionally @@ -362,7 +362,7 @@ function onKeyDown( } // Handle escape ourselves - if (e.code === 'Escape') { + if (e.key === 'Escape') { e.preventDefault(); if (!embedded) { diff --git a/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx index 9dc3d56ff25e5f625362f48722820241fc0d2c75..163817958e455c5224533c52fea830dae87edb17 100644 --- a/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/NewAutocomplete.tsx @@ -112,7 +112,7 @@ const Autocomplete = React.forwardRef<SelectInstance, AutocompleteProps>( }; const onKeyDown: AutocompleteProps['onKeyDown'] = event => { - if (event.code === 'Escape') { + if (event.key === 'Escape') { onSelect( isSingleValue(initialValue) ? initialValue?.value diff --git a/packages/desktop-client/src/components/budget/misc.js b/packages/desktop-client/src/components/budget/misc.js index b5dfd75bdebc0c241983855d3467ec751cea0d2b..afaade835935828b1ee631fd03c07220588cfbfb 100644 --- a/packages/desktop-client/src/components/budget/misc.js +++ b/packages/desktop-client/src/components/budget/misc.js @@ -138,7 +138,7 @@ export class BudgetTable extends React.Component { return null; } - if (e.code === 'Enter' || e.code === 'Tab') { + if (e.key === 'Enter' || e.key === 'Tab') { e.preventDefault(); this.moveVertically(e.shiftKey ? -1 : 1); } @@ -392,7 +392,7 @@ export function SidebarCategory({ style, ]} onKeyDown={e => { - if (e.code === 'Enter') { + if (e.key === 'Enter') { onEditName(null); e.stopPropagation(); } @@ -547,7 +547,7 @@ export function SidebarGroup({ }, ]} onKeyDown={e => { - if (e.code === 'Enter') { + if (e.key === 'Enter') { onEdit(null); e.stopPropagation(); } diff --git a/packages/desktop-client/src/components/budget/rollover/rollover-components.js b/packages/desktop-client/src/components/budget/rollover/rollover-components.js index 15533501b243f516d21bb4fd066a541d34839406..57496c283a9700176abe03d470c15c438d789f7d 100644 --- a/packages/desktop-client/src/components/budget/rollover/rollover-components.js +++ b/packages/desktop-client/src/components/budget/rollover/rollover-components.js @@ -78,7 +78,7 @@ function CoverTooltip({ inputProps={{ inputRef: node, onKeyDown: e => { - if (e.code === 'Enter') { + if (e.key === 'Enter') { submit(); } }, diff --git a/packages/desktop-client/src/components/common.js b/packages/desktop-client/src/components/common.js index 9217df639aa86150c73fe72553601b14e39947bd..f3ffc1c38e58ce3e738abbe3429c6dbfcfd615fd 100644 --- a/packages/desktop-client/src/components/common.js +++ b/packages/desktop-client/src/components/common.js @@ -349,7 +349,7 @@ export function Input({ )} {...nativeProps} onKeyDown={e => { - if (e.code === 'Enter' && onEnter) { + if (e.key === 'Enter' && onEnter) { onEnter(e); } @@ -563,7 +563,7 @@ export function Menu({ header, footer, items: allItems, onMenuSelect }) { let transformIndex = idx => items.indexOf(filteredItems[idx]); - switch (e.code) { + switch (e.key) { case 'ArrowUp': e.preventDefault(); setHoveredIndex( diff --git a/packages/desktop-client/src/components/select/DateSelect.js b/packages/desktop-client/src/components/select/DateSelect.js index adec9847a0bb96afd1f7766c07d659194323a0df..d857b8cf80157e106fbd59bbad36fe6ec6623906 100644 --- a/packages/desktop-client/src/components/select/DateSelect.js +++ b/packages/desktop-client/src/components/select/DateSelect.js @@ -75,7 +75,7 @@ export let DatePicker = React.forwardRef( () => ({ handleInputKeyDown(e) { let newDate = null; - switch (e.code) { + switch (e.key) { case 'ArrowLeft': e.preventDefault(); newDate = d.subDays(picker.current.getDate(), 1); @@ -140,7 +140,7 @@ export let DatePicker = React.forwardRef( ); function defaultShouldSaveFromKey(e) { - return e.code === 'Enter'; + return e.key === 'Enter'; } export default function DateSelect({ @@ -224,14 +224,14 @@ export default function DateSelect({ function onKeyDown(e) { if ( - ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.code) && + ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key) && !e.shiftKey && !e.metaKey && !e.altKey && open ) { picker.current.handleInputKeyDown(e); - } else if (e.code === 'Escape') { + } else if (e.key === 'Escape') { setValue(parsedDefaultValue); setSelectedValue(parsedDefaultValue); diff --git a/packages/desktop-client/src/components/table.js b/packages/desktop-client/src/components/table.js index 3bb9901356c9d9d641dc39cf4ec9c2b18b37ee27..8bdbc28c76cbff76e6c2d5381a4f8ecadcc36a2f 100644 --- a/packages/desktop-client/src/components/table.js +++ b/packages/desktop-client/src/components/table.js @@ -324,11 +324,11 @@ function InputValue({ value: defaultValue, onUpdate, onBlur, ...props }) { function onKeyDown(e) { // Only enter and tab to escape (which allows the user to move // around) - if (e.code !== 'Enter' && e.code !== 'Tab') { + if (e.key !== 'Enter' && e.key !== 'Tab') { e.stopPropagation(); } - if (e.code === 'Escape') { + if (e.key === 'Escape') { if (value !== defaultValue) { setValue(defaultValue); } @@ -389,7 +389,7 @@ export function InputCell({ } export function shouldSaveFromKey(e) { - switch (e.code) { + switch (e.key) { case 'Tab': case 'Enter': e.preventDefault(); @@ -486,7 +486,7 @@ export const CellButton = React.forwardRef( className="cell-button" tabIndex="0" onKeyDown={e => { - if (e.code === 'KeyX' || e.code === 'Space') { + if (e.key === 'X' || e.key === ' ') { e.preventDefault(); if (!disabled) { onSelect && onSelect(); @@ -1127,16 +1127,16 @@ export function useTableNavigator(data, fields) { return; } - switch (e.code) { + switch (e.key) { case 'ArrowUp': - case 'KeyK': + case 'K': if (e.target.tagName !== 'INPUT') { onMove('up'); } break; case 'ArrowDown': - case 'KeyJ': + case 'J': if (e.target.tagName !== 'INPUT') { onMove('down'); } @@ -1148,7 +1148,7 @@ export function useTableNavigator(data, fields) { e.stopPropagation(); onMove( - e.code === 'Enter' + e.key === 'Enter' ? e.shiftKey ? 'up' : 'down' diff --git a/packages/desktop-client/src/components/tooltips.js b/packages/desktop-client/src/components/tooltips.js index 561424c5c88184c0b9f3f191938936ba154d6952..6c63cba6f1707c962f09497acd142698fcb547c8 100644 --- a/packages/desktop-client/src/components/tooltips.js +++ b/packages/desktop-client/src/components/tooltips.js @@ -60,7 +60,7 @@ export class Tooltip extends React.Component { }; let escHandler = e => { - if (e.code === 'Escape') { + if (e.key === 'Escape') { this.props.onClose && this.props.onClose(); } }; diff --git a/upcoming-release-notes/883.md b/upcoming-release-notes/883.md new file mode 100644 index 0000000000000000000000000000000000000000..0c6aea867ffc785b8e5e35df83154066076fc9e5 --- /dev/null +++ b/upcoming-release-notes/883.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [j-f1] +--- + +Recognize numpad enter key as enter key