import { type Dispatch, type SetStateAction } from 'react'; import { type IHistoryState } from '../../../Interfaces/IHistoryState'; import { ENABLE_SHORTCUTS } from '../../../utils/default'; export function OnKey( event: KeyboardEvent, history: IHistoryState[], historyCurrentStep: number, setHistoryCurrentStep: Dispatch>, deleteAction: () => void, resetState: () => void ): void { if (!ENABLE_SHORTCUTS) { return; } event.preventDefault(); if (event.isComposing || event.keyCode === 229) { return; } if (event.key === 'z' && event.ctrlKey && historyCurrentStep > 0) { setHistoryCurrentStep(historyCurrentStep - 1); } else if (event.key === 'y' && event.ctrlKey && historyCurrentStep < history.length - 1) { setHistoryCurrentStep(historyCurrentStep + 1); } else if (event.key === 'Delete') { deleteAction(); } else if (event.key === 'Escape') { resetState(); } }