@wordpress/block-library
Version:
Block library for the WordPress editor.
52 lines (51 loc) • 1.57 kB
JavaScript
// packages/block-library/src/buttons/edit.js
import clsx from "clsx";
import { useBlockProps, useInnerBlocksProps } from "@wordpress/block-editor";
import { useSelect } from "@wordpress/data";
import { store as blocksStore } from "@wordpress/blocks";
import { jsx } from "react/jsx-runtime";
var DEFAULT_BLOCK = {
name: "core/button",
attributesToCopy: [
"backgroundColor",
"border",
"className",
"fontFamily",
"fontSize",
"gradient",
"style",
"textColor",
"width"
]
};
function ButtonsEdit({ attributes, className }) {
const { fontSize, layout, style } = attributes;
const blockProps = useBlockProps({
className: clsx(className, {
"has-custom-font-size": fontSize || style?.typography?.fontSize
})
});
const { hasButtonVariations } = useSelect((select) => {
const buttonVariations = select(blocksStore).getBlockVariations(
"core/button",
"inserter"
);
return {
hasButtonVariations: buttonVariations.length > 0
};
}, []);
const innerBlocksProps = useInnerBlocksProps(blockProps, {
defaultBlock: DEFAULT_BLOCK,
// This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.
directInsert: !hasButtonVariations,
template: [["core/button"]],
templateInsertUpdatesSelection: true,
orientation: layout?.orientation ?? "horizontal"
});
return /* @__PURE__ */ jsx("div", { ...innerBlocksProps });
}
var edit_default = ButtonsEdit;
export {
edit_default as default
};
//# sourceMappingURL=edit.js.map