UNPKG

@quillforms/block-editor

Version:
121 lines (116 loc) 3.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _adminComponents = require("@quillforms/admin-components"); var _data = require("@wordpress/data"); var _react = require("react"); var _emotion = require("emotion"); var _jsxRuntime = require("react/jsx-runtime"); /** * QuillForms Dependencies */ /** * WordPress Dependencies */ /** * External Dependencies */ const BlockControlsHeader = (0, _react.memo)(({ id, currentBlockName, isChildBlock, parentId }) => { const { blockTypes, welcomeScreensLength } = (0, _data.useSelect)(select => { return { blockOrder: select('quillForms/block-editor').getBlockOrderById(id), currentBlockType: select('quillForms/blocks').getBlockType(currentBlockName), blockTypes: select('quillForms/blocks').getBlockTypes(), welcomeScreensLength: select('quillForms/block-editor').getWelcomeScreensLength() }; }); if (currentBlockName === 'group') { return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "block-editor-block-controls-header", children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _emotion.css)` background: #fff; border-radius: 5px; border: 1px solid #e3e3e3; font-size: 14px; width: 100%; height: 45px; display: inline-flex; padding: 16px; justify-content: space-between; `, children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "block-controls-blocktype-select", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_adminComponents.BlockIconBox, { icon: blockTypes['group']?.icon, color: blockTypes['group']?.color }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { children: "Group" })] }) }) }); } const { replaceBlockName } = (0, _data.useDispatch)('quillForms/block-editor'); const blockTypesOptions = Object.keys(blockTypes).filter($blockName => { // Always include current block type if ($blockName === currentBlockName) { return true; } // Exclude specific blocks const excludedBlocks = ['partial-submission-point', 'group']; if (welcomeScreensLength > 0 || isChildBlock) { excludedBlocks.push('welcome-screen'); } if (isChildBlock) { excludedBlocks.push('thankyou-screen'); } if (excludedBlocks.includes($blockName)) { return false; } return true; // Include all other blocks }).map($blockName => ({ key: $blockName, name: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "block-controls-blocktype-select", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_adminComponents.BlockIconBox, { icon: blockTypes[$blockName]?.icon, color: blockTypes[$blockName]?.color }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { children: blockTypes[$blockName].title })] }) })); return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "block-editor-block-controls-header", children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_adminComponents.SelectControl, { value: blockTypesOptions.find(option => option.key === currentBlockName), options: blockTypesOptions, onChange: ({ selectedItem }) => { if (selectedItem) { if (isChildBlock) { replaceBlockName(id, selectedItem.key, parentId); } else { replaceBlockName(id, selectedItem.key); } } } }) }); }); var _default = exports.default = BlockControlsHeader; //# sourceMappingURL=index.js.map