@wordpress/block-editor
Version:
65 lines (50 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useUndoAutomaticChange = useUndoAutomaticChange;
var _data = require("@wordpress/data");
var _compose = require("@wordpress/compose");
var _keycodes = require("@wordpress/keycodes");
var _store = require("../../store");
/**
* WordPress 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;
}
const {
__experimentalUndo
} = getSettings();
if (!__experimentalUndo) {
return;
}
if (!didAutomaticChange()) {
return;
}
event.preventDefault();
__experimentalUndo();
}
element.addEventListener('keydown', onKeyDown);
return () => {
element.removeEventListener('keydown', onKeyDown);
};
}, []);
}
//# sourceMappingURL=use-undo-automatic-change.js.map