UNPKG

@wordpress/block-editor

Version:
96 lines (90 loc) 3.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ButtonBlockerAppender = void 0; var _clsx = _interopRequireDefault(require("clsx")); var _components = require("@wordpress/components"); var _element = require("@wordpress/element"); var _i18n = require("@wordpress/i18n"); var _icons = require("@wordpress/icons"); var _deprecated = _interopRequireDefault(require("@wordpress/deprecated")); var _inserter = _interopRequireDefault(require("../inserter")); var _jsxRuntime = require("react/jsx-runtime"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function ButtonBlockAppender({ rootClientId, className, onFocus, tabIndex, onSelect }, ref) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_inserter.default, { position: "bottom center", rootClientId: rootClientId, __experimentalIsQuick: true, onSelectOrClose: (...args) => { if (onSelect && typeof onSelect === 'function') { onSelect(...args); } }, renderToggle: ({ onToggle, disabled, isOpen, blockTitle, hasSingleBlockType }) => { const isToggleButton = !hasSingleBlockType; const label = hasSingleBlockType ? (0, _i18n.sprintf)( // translators: %s: the name of the block when there is only one (0, _i18n._x)('Add %s', 'directly add the only allowed block'), blockTitle) : (0, _i18n._x)('Add block', 'Generic label for block inserter button'); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, { __next40pxDefaultSize: true, ref: ref, onFocus: onFocus, tabIndex: tabIndex, className: (0, _clsx.default)(className, 'block-editor-button-block-appender'), onClick: onToggle, "aria-haspopup": isToggleButton ? 'true' : undefined, "aria-expanded": isToggleButton ? isOpen : undefined // Disable reason: There shouldn't be a case where this button is disabled but not visually hidden. // eslint-disable-next-line no-restricted-syntax , disabled: disabled, label: label, showTooltip: true, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, { icon: _icons.plus }) }); }, isAppender: true }); } /** * Use `ButtonBlockAppender` instead. * * @deprecated */ const ButtonBlockerAppender = exports.ButtonBlockerAppender = (0, _element.forwardRef)((props, ref) => { (0, _deprecated.default)(`wp.blockEditor.ButtonBlockerAppender`, { alternative: 'wp.blockEditor.ButtonBlockAppender', since: '5.9' }); return ButtonBlockAppender(props, ref); }); /** * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/button-block-appender/README.md */ var _default = exports.default = (0, _element.forwardRef)(ButtonBlockAppender); //# sourceMappingURL=index.js.map