@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
124 lines (122 loc) • 5.18 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// packages/editor/src/components/styles-canvas/revisions.js
var revisions_exports = {};
__export(revisions_exports, {
default: () => revisions_default
});
module.exports = __toCommonJS(revisions_exports);
var import_components = require("@wordpress/components");
var import_block_editor = require("@wordpress/block-editor");
var import_data = require("@wordpress/data");
var import_element = require("@wordpress/element");
var import_global_styles_ui = require("@wordpress/global-styles-ui");
var import_global_styles_engine = require("@wordpress/global-styles-engine");
var import_hooks = require("../global-styles/hooks.cjs");
var import_use_global_styles_output = require("../../hooks/use-global-styles-output.cjs");
var import_lock_unlock = require("../../lock-unlock.cjs");
var import_jsx_runtime = require("react/jsx-runtime");
var {
ExperimentalBlockEditorProvider,
__unstableBlockStyleVariationOverridesWithConfig
} = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
function isObjectEmpty(object) {
return !object || Object.keys(object).length === 0;
}
function StylesCanvasRevisions({ path }, ref) {
const blocks = (0, import_data.useSelect)((select) => {
return select(import_block_editor.store).getBlocks();
}, []);
const { user: userConfig, base: baseConfig } = (0, import_hooks.useGlobalStyles)();
const { revisions, isLoading } = (0, import_global_styles_ui.useGlobalStylesRevisions)();
const revisionId = (0, import_element.useMemo)(() => {
const match = path?.match(/^\/revisions\/(.+)$/);
return match ? match[1] : null;
}, [path]);
const selectedRevision = (0, import_element.useMemo)(() => {
if (!revisionId || !revisions.length) {
return null;
}
return revisions.find(
(rev) => String(rev.id) === String(revisionId)
);
}, [revisionId, revisions]);
const displayConfig = selectedRevision || userConfig;
const mergedConfig = (0, import_element.useMemo)(() => {
if (!isObjectEmpty(displayConfig) && !isObjectEmpty(baseConfig)) {
return (0, import_global_styles_engine.mergeGlobalStyles)(baseConfig, displayConfig);
}
return {};
}, [baseConfig, displayConfig]);
const renderedBlocksArray = (0, import_element.useMemo)(
() => Array.isArray(blocks) ? blocks : [blocks],
[blocks]
);
const originalSettings = (0, import_data.useSelect)(
(select) => select(import_block_editor.store).getSettings(),
[]
);
const settings = (0, import_element.useMemo)(
() => ({
...originalSettings,
isPreviewMode: true
}),
[originalSettings]
);
const [globalStyles] = (0, import_use_global_styles_output.useGlobalStylesOutputWithConfig)(mergedConfig);
const editorStyles = !isObjectEmpty(globalStyles) && !isObjectEmpty(displayConfig) ? globalStyles : settings.styles;
if (isLoading) {
return null;
}
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
import_block_editor.__unstableIframe,
{
ref,
className: "editor-revisions__iframe",
name: "revisions",
tabIndex: 0,
children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", {
// Forming a "block formatting context" to prevent margin collapsing.
// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
children: `.is-root-container { display: flow-root; }`
}),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Disabled, { className: "editor-revisions__example-preview__content", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
ExperimentalBlockEditorProvider,
{
value: renderedBlocksArray,
settings,
children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockList, { renderAppender: false }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.__unstableEditorStyles, { styles: editorStyles }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
__unstableBlockStyleVariationOverridesWithConfig,
{
config: mergedConfig
}
)
]
}
) })
]
}
);
}
var revisions_default = (0, import_element.forwardRef)(StylesCanvasRevisions);
//# sourceMappingURL=revisions.cjs.map