@wordpress/block-editor
Version:
55 lines (51 loc) • 1.68 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
import { Button, Placeholder } from '@wordpress/components';
import { layout } from '@wordpress/icons';
function BlockVariationPicker({
icon = layout,
label = __('Choose variation'),
instructions = __('Select a variation to start with.'),
variations,
onSelect,
allowSkip
}) {
const classes = classnames('block-editor-block-variation-picker', {
'has-many-variations': variations.length > 4
});
return createElement(Placeholder, {
icon: icon,
label: label,
instructions: instructions,
className: classes
}, createElement("ul", {
className: "block-editor-block-variation-picker__variations",
role: "list",
"aria-label": __('Block variations')
}, variations.map(variation => createElement("li", {
key: variation.name
}, createElement(Button, {
variant: "secondary",
icon: variation.icon && variation.icon.src ? variation.icon.src : variation.icon,
iconSize: 48,
onClick: () => onSelect(variation),
className: "block-editor-block-variation-picker__variation",
label: variation.description || variation.title
}), createElement("span", {
className: "block-editor-block-variation-picker__variation-label"
}, variation.title)))), allowSkip && createElement("div", {
className: "block-editor-block-variation-picker__skip"
}, createElement(Button, {
variant: "link",
onClick: () => onSelect()
}, __('Skip'))));
}
export default BlockVariationPicker;
//# sourceMappingURL=index.js.map