UNPKG

@gechiui/block-editor

Version:
46 lines (39 loc) 1.03 kB
/** * GeChiUI dependencies */ import { useSelect } from '@gechiui/data'; import { useRefEffect } from '@gechiui/compose'; import { BACKSPACE, DELETE, ESCAPE } from '@gechiui/keycodes'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; export function useUndoAutomaticChange() { const { didAutomaticChange, getSettings } = useSelect(blockEditorStore); return useRefEffect(element => { function onKeyDown(event) { const { keyCode } = event; if (event.defaultPrevented) { return; } if (keyCode !== DELETE && keyCode !== BACKSPACE && keyCode !== ESCAPE) { return; } if (!didAutomaticChange()) { return; } event.preventDefault(); getSettings().__experimentalUndo(); } element.addEventListener('keydown', onKeyDown); return () => { element.removeEventListener('keydown', onKeyDown); }; }, []); } //# sourceMappingURL=use-undo-automatic-change.js.map