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.

53 lines (49 loc) 1.69 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ExportedServerSideRender; 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 = {}; function ExportedServerSideRender({ urlQueryArgs = EMPTY_OBJECT, ...props }) { const currentPostId = (0, _data.useSelect)(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 postId = select('core/editor')?.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. return postId && typeof postId === 'number' ? postId : null; }, []); 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 }); } //# sourceMappingURL=index.js.map