@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
52 lines (49 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useZoomOutModeExit = useZoomOutModeExit;
var _data = require("@wordpress/data");
var _compose = require("@wordpress/compose");
var _blockEditor = require("@wordpress/block-editor");
var _lockUnlock = require("../../lock-unlock");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Allows Zoom Out mode to be exited by double clicking in the selected block.
*/
function useZoomOutModeExit() {
const {
getSettings,
isZoomOut
} = (0, _lockUnlock.unlock)((0, _data.useSelect)(_blockEditor.store));
const {
resetZoomLevel
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_blockEditor.store));
return (0, _compose.useRefEffect)(node => {
function onDoubleClick(event) {
if (!isZoomOut()) {
return;
}
if (!event.defaultPrevented) {
event.preventDefault();
const {
__experimentalSetIsInserterOpened
} = getSettings();
if (typeof __experimentalSetIsInserterOpened === 'function') {
__experimentalSetIsInserterOpened(false);
}
resetZoomLevel();
}
}
node.addEventListener('dblclick', onDoubleClick);
return () => {
node.removeEventListener('dblclick', onDoubleClick);
};
}, [getSettings, isZoomOut, resetZoomLevel]);
}
//# sourceMappingURL=use-zoom-out-mode-exit.js.map