@wordpress/edit-post
Version:
Edit Post module for WordPress.
100 lines (81 loc) • 3.75 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _classnames = _interopRequireDefault(require("classnames"));
var _editor = require("@wordpress/editor");
var _data = require("@wordpress/data");
var _interface = require("@wordpress/interface");
var _compose = require("@wordpress/compose");
var _fullscreenModeClose = _interopRequireDefault(require("./fullscreen-mode-close"));
var _headerToolbar = _interopRequireDefault(require("./header-toolbar"));
var _moreMenu = _interopRequireDefault(require("./more-menu"));
var _postPublishButtonOrToggle = _interopRequireDefault(require("./post-publish-button-or-toggle"));
var _devicePreview = _interopRequireDefault(require("../device-preview"));
var _mainDashboardButton = _interopRequireDefault(require("./main-dashboard-button"));
var _store = require("../../store");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function Header({
setEntitiesSavedStatesCallback
}) {
const {
hasActiveMetaboxes,
isPublishSidebarOpened,
isSaving,
showIconLabels,
hasReducedUI
} = (0, _data.useSelect)(select => ({
hasActiveMetaboxes: select(_store.store).hasMetaBoxes(),
isPublishSidebarOpened: select(_store.store).isPublishSidebarOpened(),
isSaving: select(_store.store).isSavingMetaBoxes(),
showIconLabels: select(_store.store).isFeatureActive('showIconLabels'),
hasReducedUI: select(_store.store).isFeatureActive('reducedUI')
}), []);
const isLargeViewport = (0, _compose.useViewportMatch)('large');
const classes = (0, _classnames.default)('edit-post-header', {
'has-reduced-ui': hasReducedUI
});
return (0, _element.createElement)("div", {
className: classes
}, (0, _element.createElement)(_mainDashboardButton.default.Slot, null, (0, _element.createElement)(_fullscreenModeClose.default, null)), (0, _element.createElement)("div", {
className: "edit-post-header__toolbar"
}, (0, _element.createElement)(_headerToolbar.default, null)), (0, _element.createElement)("div", {
className: "edit-post-header__settings"
}, !isPublishSidebarOpened && // This button isn't completely hidden by the publish sidebar.
// We can't hide the whole toolbar when the publish sidebar is open because
// we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.
// We track that DOM node to return focus to the PostPublishButtonOrToggle
// when the publish sidebar has been closed.
(0, _element.createElement)(_editor.PostSavedState, {
forceIsDirty: hasActiveMetaboxes,
forceIsSaving: isSaving,
showIconLabels: showIconLabels
}), (0, _element.createElement)(_devicePreview.default, null), (0, _element.createElement)(_editor.PostPreviewButton, {
forceIsAutosaveable: hasActiveMetaboxes,
forcePreviewLink: isSaving ? null : undefined
}), (0, _element.createElement)(_postPublishButtonOrToggle.default, {
forceIsDirty: hasActiveMetaboxes,
forceIsSaving: isSaving,
setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
}), (isLargeViewport || !showIconLabels) && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_interface.PinnedItems.Slot, {
scope: "core/edit-post"
}), (0, _element.createElement)(_moreMenu.default, {
showIconLabels: showIconLabels
})), showIconLabels && !isLargeViewport && (0, _element.createElement)(_moreMenu.default, {
showIconLabels: showIconLabels
})));
}
var _default = Header;
exports.default = _default;
//# sourceMappingURL=index.js.map