UNPKG

@wordpress/server-side-render

Version:

The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.

61 lines (58 loc) 1.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _data = require("@wordpress/data"); var _serverSideRender = _interopRequireDefault(require("./server-side-render")); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ /** * Constants */const EMPTY_OBJECT = {}; const ExportedServerSideRender = (0, _data.withSelect)(select => { // FIXME: @wordpress/server-side-render should not depend on @wordpress/editor. // It is used by blocks that can be loaded into a *non-post* block editor. // eslint-disable-next-line @wordpress/data-no-store-string-literals const coreEditorSelect = select('core/editor'); if (coreEditorSelect) { const currentPostId = coreEditorSelect.getCurrentPostId(); // For templates and template parts we use a custom ID format. // Since they aren't real posts, we don't want to use their ID // for server-side rendering. Since they use a string based ID, // we can assume real post IDs are numbers. if (currentPostId && typeof currentPostId === 'number') { return { currentPostId }; } } return EMPTY_OBJECT; })(({ urlQueryArgs = EMPTY_OBJECT, currentPostId, ...props }) => { const newUrlQueryArgs = (0, _element.useMemo)(() => { if (!currentPostId) { return urlQueryArgs; } return { post_id: currentPostId, ...urlQueryArgs }; }, [currentPostId, urlQueryArgs]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_serverSideRender.default, { urlQueryArgs: newUrlQueryArgs, ...props }); }); var _default = exports.default = ExportedServerSideRender; //# sourceMappingURL=index.js.map