UNPKG

@wordpress/block-editor

Version:
95 lines (77 loc) 2.54 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _classnames = _interopRequireDefault(require("classnames")); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _icons = require("@wordpress/icons"); var _inserter = _interopRequireDefault(require("../inserter")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function ButtonBlockAppender({ rootClientId, className, onFocus, tabIndex }, ref) { return (0, _element.createElement)(_inserter.default, { position: "bottom center", rootClientId: rootClientId, __experimentalIsQuick: true, renderToggle: ({ onToggle, disabled, isOpen, blockTitle, hasSingleBlockType }) => { let label; if (hasSingleBlockType) { label = (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); } else { label = (0, _i18n._x)('Add block', 'Generic label for block inserter button'); } const isToggleButton = !hasSingleBlockType; let inserterButton = (0, _element.createElement)(_components.Button, { ref: ref, onFocus: onFocus, tabIndex: tabIndex, className: (0, _classnames.default)(className, 'block-editor-button-block-appender'), onClick: onToggle, "aria-haspopup": isToggleButton ? 'true' : undefined, "aria-expanded": isToggleButton ? isOpen : undefined, disabled: disabled, label: label }, !hasSingleBlockType && (0, _element.createElement)(_components.VisuallyHidden, { as: "span" }, label), (0, _element.createElement)(_icons.Icon, { icon: _icons.plus })); if (isToggleButton || hasSingleBlockType) { inserterButton = (0, _element.createElement)(_components.Tooltip, { text: label }, inserterButton); } return inserterButton; }, isAppender: true }); } /** * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/button-block-appender/README.md */ var _default = (0, _element.forwardRef)(ButtonBlockAppender); exports.default = _default; //# sourceMappingURL=index.js.map