@gechiui/block-editor
Version:
57 lines (44 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useUndoAutomaticChange = useUndoAutomaticChange;
var _data = require("@gechiui/data");
var _compose = require("@gechiui/compose");
var _keycodes = require("@gechiui/keycodes");
var _store = require("../../store");
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
function useUndoAutomaticChange() {
const {
didAutomaticChange,
getSettings
} = (0, _data.useSelect)(_store.store);
return (0, _compose.useRefEffect)(element => {
function onKeyDown(event) {
const {
keyCode
} = event;
if (event.defaultPrevented) {
return;
}
if (keyCode !== _keycodes.DELETE && keyCode !== _keycodes.BACKSPACE && keyCode !== _keycodes.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