import { isKeyHotkey } from 'is-hotkey'; import { KeyboardEventHandler } from 'react'; export interface KeyboardEventLike { key: string; which: number; altKey: boolean; ctrlKey: boolean; metaKey: boolean; shiftKey: boolean; preventDefault(): void; } export const onTabPress = (evt: KeyboardEventLike, callback: () => void) => { if (isKeyHotkey('tab', evt)) { evt.preventDefault(); callback(); } }; export const preventScrollWithArrowKey: KeyboardEventHandler = (evt) => { if (isKeyHotkey(['arrowup', 'arrowright', 'arrowdown', 'arrowleft'], evt)) { evt.preventDefault(); } }; export const onEnterOrSpace = (callback: () => void) => (evt: KeyboardEventLike) => { if (isKeyHotkey('enter', evt) || isKeyHotkey('space', evt)) { evt.preventDefault(); callback(); } }; export const stopPropagation = (evt: KeyboardEvent): boolean => { evt.stopPropagation(); return true; };