@quillforms/block-editor
Version:
121 lines (116 loc) • 3.68 kB
JavaScript
;
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