UNPKG

@wordpress/block-editor

Version:
84 lines (75 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SidesDropdown; var _element = require("@wordpress/element"); var _components = require("@wordpress/components"); var _icons = require("@wordpress/icons"); var _utils = require("../utils"); /** * WordPress dependencies */ /** * Internal dependencies */ const checkIcon = (0, _element.createElement)(_components.Icon, { icon: _icons.check, size: 24 }); function SidesDropdown({ label: labelProp, onChange, sides, value }) { if (!sides || !sides.length) { return; } const supportedItems = (0, _utils.getSupportedMenuItems)(sides); const sideIcon = supportedItems[value].icon; const { custom: customItem, ...menuItems } = supportedItems; return (0, _element.createElement)(_components.DropdownMenu, { icon: sideIcon, label: labelProp, className: "spacing-sizes-control__dropdown", toggleProps: { isSmall: true } }, ({ onClose }) => { return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuGroup, null, Object.entries(menuItems).map(([slug, { label, icon }]) => { const isSelected = value === slug; return (0, _element.createElement)(_components.MenuItem, { key: slug, icon: icon, iconPosition: "left", isSelected: isSelected, role: "menuitemradio", onClick: () => { onChange(slug); onClose(); }, suffix: isSelected ? checkIcon : undefined }, label); })), !!customItem && (0, _element.createElement)(_components.MenuGroup, null, (0, _element.createElement)(_components.MenuItem, { icon: customItem.icon, iconPosition: "left", isSelected: value === _utils.VIEWS.custom, role: "menuitemradio", onClick: () => { onChange(_utils.VIEWS.custom); onClose(); }, suffix: value === _utils.VIEWS.custom ? checkIcon : undefined }, customItem.label))); }); } //# sourceMappingURL=index.js.map