aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/ui/select/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ui/select/index.tsx')
-rw-r--r--src/components/ui/select/index.tsx13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx
index 397fd97ed..c19c12417 100644
--- a/src/components/ui/select/index.tsx
+++ b/src/components/ui/select/index.tsx
@@ -13,6 +13,11 @@ import {
13 createRef, 13 createRef,
14} from 'react'; 14} from 'react';
15import withStyles, { type WithStylesProps } from 'react-jss'; 15import withStyles, { type WithStylesProps } from 'react-jss';
16import {
17 isArrowDownKeyPress,
18 isArrowUpKeyPress,
19 isEnterKeyPress,
20} from '../../../jsUtils';
16import type { Theme } from '../../../themes'; 21import type { Theme } from '../../../themes';
17// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 22// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
18import Error from '../error'; 23import Error from '../error';
@@ -288,23 +293,23 @@ class SelectComponent extends Component<IProps, IState> {
288 293
289 if (!open) return; 294 if (!open) return;
290 295
291 if (e.key === 'ArrowUp' || e.key === 'ArrowDown') { 296 if (isArrowUpKeyPress(e.key) || isArrowDownKeyPress(e.key)) {
292 e.preventDefault(); 297 e.preventDefault();
293 } 298 }
294 299
295 if (this.componentRef?.current) { 300 if (this.componentRef?.current) {
296 if (e.key === 'ArrowUp' && selected > 0) { 301 if (isArrowUpKeyPress(e.key) && selected > 0) {
297 this.setState((state: IState) => ({ 302 this.setState((state: IState) => ({
298 selected: state.selected - 1, 303 selected: state.selected - 1,
299 })); 304 }));
300 } else if ( 305 } else if (
301 e.key === 'ArrowDown' && 306 isArrowDownKeyPress(e.key) &&
302 selected < Object.keys(options!).length - 1 307 selected < Object.keys(options!).length - 1
303 ) { 308 ) {
304 this.setState((state: IState) => ({ 309 this.setState((state: IState) => ({
305 selected: state.selected + 1, 310 selected: state.selected + 1,
306 })); 311 }));
307 } else if (e.key === 'Enter') { 312 } else if (isEnterKeyPress(e.key)) {
308 this.select(Object.keys(options!)[selected]); 313 this.select(Object.keys(options!)[selected]);
309 } 314 }
310 315