@gechiui/block-editor
Version:
46 lines (39 loc) • 1.03 kB
JavaScript
/**
* 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