@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
52 lines (50 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _data = require("@wordpress/data");
var _element = require("@wordpress/element");
var _blockEditor = require("@wordpress/block-editor");
var _preferences = require("@wordpress/preferences");
var _interface = require("@wordpress/interface");
/**
* WordPress dependencies
*/
/**
* This listener hook monitors for block selection and triggers the appropriate
* sidebar state.
*/
function useAutoSwitchEditorSidebars() {
const {
hasBlockSelection
} = (0, _data.useSelect)(select => {
return {
hasBlockSelection: !!select(_blockEditor.store).getBlockSelectionStart()
};
}, []);
const {
getActiveComplementaryArea
} = (0, _data.useSelect)(_interface.store);
const {
enableComplementaryArea
} = (0, _data.useDispatch)(_interface.store);
const {
get: getPreference
} = (0, _data.useSelect)(_preferences.store);
(0, _element.useEffect)(() => {
const activeGeneralSidebar = getActiveComplementaryArea('core');
const isEditorSidebarOpened = ['edit-post/document', 'edit-post/block'].includes(activeGeneralSidebar);
const isDistractionFree = getPreference('core', 'distractionFree');
if (!isEditorSidebarOpened || isDistractionFree) {
return;
}
if (hasBlockSelection) {
enableComplementaryArea('core', 'edit-post/block');
} else {
enableComplementaryArea('core', 'edit-post/document');
}
}, [hasBlockSelection, getActiveComplementaryArea, enableComplementaryArea, getPreference]);
}
var _default = exports.default = useAutoSwitchEditorSidebars;
//# sourceMappingURL=use-auto-switch-editor-sidebars.js.map