UNPKG

@wordpress/edit-post

Version:
104 lines (87 loc) 3.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ActionsPanel; exports.ActionsPanelFill = void 0; var _element = require("@wordpress/element"); var _editor = require("@wordpress/editor"); var _data = require("@wordpress/data"); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _pluginPostPublishPanel = _interopRequireDefault(require("../sidebar/plugin-post-publish-panel")); var _pluginPrePublishPanel = _interopRequireDefault(require("../sidebar/plugin-pre-publish-panel")); var _store = require("../../store"); /** * WordPress dependencies */ /** * Internal dependencies */ const { Fill, Slot } = (0, _components.createSlotFill)('ActionsPanel'); const ActionsPanelFill = Fill; exports.ActionsPanelFill = ActionsPanelFill; function ActionsPanel({ setEntitiesSavedStatesCallback, closeEntitiesSavedStates, isEntitiesSavedStatesOpen }) { const { closePublishSidebar, togglePublishSidebar } = (0, _data.useDispatch)(_store.store); const { publishSidebarOpened, hasActiveMetaboxes, isSavingMetaBoxes, hasNonPostEntityChanges } = (0, _data.useSelect)(select => { return { publishSidebarOpened: select(_store.store).isPublishSidebarOpened(), hasActiveMetaboxes: select(_store.store).hasMetaBoxes(), isSavingMetaBoxes: select(_store.store).isSavingMetaBoxes(), hasNonPostEntityChanges: select('core/editor').hasNonPostEntityChanges() }; }, []); const openEntitiesSavedStates = (0, _element.useCallback)(() => setEntitiesSavedStatesCallback(true), []); // It is ok for these components to be unmounted when not in visual use. // We don't want more than one present at a time, decide which to render. let unmountableContent; if (publishSidebarOpened) { unmountableContent = (0, _element.createElement)(_editor.PostPublishPanel, { onClose: closePublishSidebar, forceIsDirty: hasActiveMetaboxes, forceIsSaving: isSavingMetaBoxes, PrePublishExtension: _pluginPrePublishPanel.default.Slot, PostPublishExtension: _pluginPostPublishPanel.default.Slot }); } else if (hasNonPostEntityChanges) { unmountableContent = (0, _element.createElement)("div", { className: "edit-post-layout__toggle-entities-saved-states-panel" }, (0, _element.createElement)(_components.Button, { isSecondary: true, className: "edit-post-layout__toggle-entities-saved-states-panel-button", onClick: openEntitiesSavedStates, "aria-expanded": false }, (0, _i18n.__)('Open save panel'))); } else { unmountableContent = (0, _element.createElement)("div", { className: "edit-post-layout__toggle-publish-panel" }, (0, _element.createElement)(_components.Button, { isSecondary: true, className: "edit-post-layout__toggle-publish-panel-button", onClick: togglePublishSidebar, "aria-expanded": false }, (0, _i18n.__)('Open publish panel'))); } // Since EntitiesSavedStates controls its own panel, we can keep it // always mounted to retain its own component state (such as checkboxes). return (0, _element.createElement)(_element.Fragment, null, isEntitiesSavedStatesOpen && (0, _element.createElement)(_editor.EntitiesSavedStates, { close: closeEntitiesSavedStates }), (0, _element.createElement)(Slot, { bubblesVirtually: true }), !isEntitiesSavedStatesOpen && unmountableContent); } //# sourceMappingURL=actions-panel.js.map