UNPKG

@wordpress/block-library

Version:
79 lines (66 loc) 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = QueryPaginationEdit; var _element = require("@wordpress/element"); var _i18n = require("@wordpress/i18n"); var _blockEditor = require("@wordpress/block-editor"); var _data = require("@wordpress/data"); var _blocks = require("@wordpress/blocks"); var _components = require("@wordpress/components"); var _queryPaginationArrowControls = require("./query-pagination-arrow-controls"); /** * WordPress dependencies */ /** * Internal dependencies */ const TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']]; const ALLOWED_BLOCKS = ['core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next']; const getDefaultBlockLayout = blockTypeOrName => { const layoutBlockSupportConfig = (0, _blocks.getBlockSupport)(blockTypeOrName, '__experimentalLayout'); return layoutBlockSupportConfig === null || layoutBlockSupportConfig === void 0 ? void 0 : layoutBlockSupportConfig.default; }; function QueryPaginationEdit(_ref) { let { attributes: { paginationArrow, layout }, setAttributes, clientId, name } = _ref; const usedLayout = layout || getDefaultBlockLayout(name); const hasNextPreviousBlocks = (0, _data.useSelect)(select => { const { getBlocks } = select(_blockEditor.store); const innerBlocks = getBlocks(clientId); /** * Show the `paginationArrow` control only if a * `QueryPaginationNext/Previous` block exists. */ return innerBlocks === null || innerBlocks === void 0 ? void 0 : innerBlocks.find(innerBlock => { return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name); }); }, []); const blockProps = (0, _blockEditor.useBlockProps)(); const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, { template: TEMPLATE, allowedBlocks: ALLOWED_BLOCKS, __experimentalLayout: usedLayout }); return (0, _element.createElement)(_element.Fragment, null, hasNextPreviousBlocks && (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, { title: (0, _i18n.__)('Settings') }, (0, _element.createElement)(_queryPaginationArrowControls.QueryPaginationArrowControls, { value: paginationArrow, onChange: value => { setAttributes({ paginationArrow: value }); } }))), (0, _element.createElement)("nav", innerBlocksProps)); } //# sourceMappingURL=edit.js.map