@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
114 lines (113 loc) • 4.79 kB
JavaScript
// packages/editor/src/components/sidebar/index.js
import {
BlockInspector,
store as blockEditorStore
} from "@wordpress/block-editor";
import { useSelect, useDispatch } from "@wordpress/data";
import { isRTL, __, _x } from "@wordpress/i18n";
import { drawerLeft, drawerRight } from "@wordpress/icons";
import { store as keyboardShortcutsStore } from "@wordpress/keyboard-shortcuts";
import { store as interfaceStore } from "@wordpress/interface";
import { Tabs } from "@wordpress/ui";
import PatternOverridesPanel from "../pattern-overrides-panel/index.mjs";
import PluginDocumentSettingPanel from "../plugin-document-setting-panel/index.mjs";
import PluginSidebar from "../plugin-sidebar/index.mjs";
import PostSummary from "./post-summary.mjs";
import DataFormPostSummary from "./dataform-post-summary.mjs";
import PostRevisionSummary from "./post-revision-summary.mjs";
import PostTaxonomiesPanel from "../post-taxonomies/panel.mjs";
import PostTransformPanel from "../post-transform-panel/index.mjs";
import SidebarHeader from "./header.mjs";
import TemplateActionsPanel from "../template-actions-panel/index.mjs";
import TemplateContentPanel from "../template-content-panel/index.mjs";
import TemplatePartContentPanel from "../template-part-content-panel/index.mjs";
import RevisionBlockDiffPanel from "../revision-block-diff/index.mjs";
import useAutoSwitchEditorSidebars from "../provider/use-auto-switch-editor-sidebars.mjs";
import { sidebars } from "./constants.mjs";
import { unlock } from "../../lock-unlock.mjs";
import { store as editorStore } from "../../store/index.mjs";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
var SIDEBAR_ACTIVE_BY_DEFAULT = true;
function Sidebar({ extraPanels, onActionPerformed }) {
useAutoSwitchEditorSidebars();
const { tabName, keyboardShortcut, isRevisionsMode } = useSelect(
(select) => {
const shortcut = select(
keyboardShortcutsStore
).getShortcutRepresentation("core/editor/toggle-sidebar");
const sidebar = select(interfaceStore).getActiveComplementaryArea("core");
const _isEditorSidebarOpened = [
sidebars.block,
sidebars.document
].includes(sidebar);
let _tabName = sidebar;
if (!_isEditorSidebarOpened) {
_tabName = select(blockEditorStore).getBlockSelectionStart() ? sidebars.block : sidebars.document;
}
return {
tabName: _tabName,
keyboardShortcut: shortcut,
isRevisionsMode: unlock(
select(editorStore)
).isRevisionsMode()
};
},
[]
);
const { enableComplementaryArea } = useDispatch(interfaceStore);
function onTabSelect(newSelectedTabId) {
enableComplementaryArea("core", newSelectedTabId);
}
let tabContent;
if (isRevisionsMode) {
tabContent = /* @__PURE__ */ jsx(PostRevisionSummary, {});
} else {
const isDataFormInspectorEnabled = window?.__experimentalDataFormInspector;
tabContent = /* @__PURE__ */ jsxs(Fragment, { children: [
isDataFormInspectorEnabled ? /* @__PURE__ */ jsx(
DataFormPostSummary,
{
onActionPerformed
}
) : /* @__PURE__ */ jsx(PostSummary, { onActionPerformed }),
/* @__PURE__ */ jsx(PluginDocumentSettingPanel.Slot, {}),
/* @__PURE__ */ jsx(TemplateContentPanel, {}),
isDataFormInspectorEnabled && /* @__PURE__ */ jsx(TemplateActionsPanel, {}),
/* @__PURE__ */ jsx(TemplatePartContentPanel, {}),
/* @__PURE__ */ jsx(PostTransformPanel, {}),
/* @__PURE__ */ jsx(PostTaxonomiesPanel, {}),
/* @__PURE__ */ jsx(PatternOverridesPanel, {}),
extraPanels
] });
}
return /* @__PURE__ */ jsxs(
PluginSidebar,
{
identifier: tabName,
header: /* @__PURE__ */ jsx(SidebarHeader, {}),
closeLabel: __("Close Settings"),
className: "editor-sidebar__panel",
headerClassName: "editor-sidebar__panel-tabs",
title: (
/* translators: button label text should, if possible, be under 16 characters. */
_x("Settings", "panel button label")
),
toggleShortcut: keyboardShortcut,
icon: isRTL() ? drawerLeft : drawerRight,
isActiveByDefault: SIDEBAR_ACTIVE_BY_DEFAULT,
render: /* @__PURE__ */ jsx(Tabs.Root, { value: tabName, onValueChange: onTabSelect }),
children: [
/* @__PURE__ */ jsx(Tabs.Panel, { value: sidebars.document, tabIndex: -1, children: tabContent }),
/* @__PURE__ */ jsxs(Tabs.Panel, { value: sidebars.block, tabIndex: -1, children: [
/* @__PURE__ */ jsx(BlockInspector, {}),
isRevisionsMode && /* @__PURE__ */ jsx(RevisionBlockDiffPanel, {})
] })
]
}
);
}
var sidebar_default = Sidebar;
export {
sidebar_default as default
};
//# sourceMappingURL=index.mjs.map