31 lines
891 B
TypeScript
31 lines
891 B
TypeScript
import { Dispatch, SetStateAction } from 'react';
|
|
import { IHistoryState } from '../../../Interfaces/IHistoryState';
|
|
import { ENABLE_SHORTCUTS } from '../../../utils/default';
|
|
|
|
export function OnKey(
|
|
event: KeyboardEvent,
|
|
history: IHistoryState[],
|
|
historyCurrentStep: number,
|
|
setHistoryCurrentStep: Dispatch<SetStateAction<number>>,
|
|
deleteAction: () => 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();
|
|
}
|
|
}
|