UNPKG

@gechiui/block-editor

Version:
113 lines (92 loc) 3.06 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ButtonBlockerAppender = void 0; var _element = require("@gechiui/element"); var _classnames = _interopRequireDefault(require("classnames")); var _components = require("@gechiui/components"); var _i18n = require("@gechiui/i18n"); var _icons = require("@gechiui/icons"); var _deprecated = _interopRequireDefault(require("@gechiui/deprecated")); var _inserter = _interopRequireDefault(require("../inserter")); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ function ButtonBlockAppender(_ref, ref) { let { rootClientId, className, onFocus, tabIndex } = _ref; return (0, _element.createElement)(_inserter.default, { position: "bottom center", rootClientId: rootClientId, __experimentalIsQuick: true, renderToggle: _ref2 => { let { onToggle, disabled, isOpen, blockTitle, hasSingleBlockType } = _ref2; 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 }); } /** * Use `ButtonBlockAppender` instead. * * @deprecated */ const ButtonBlockerAppender = (0, _element.forwardRef)((props, ref) => { (0, _deprecated.default)(`gc.blockEditor.ButtonBlockerAppender`, { alternative: 'gc.blockEditor.ButtonBlockAppender' }); return ButtonBlockAppender(props, ref); }); /** * @see https://github.com/GeChiUI/gutenberg/blob/HEAD/packages/block-editor/src/components/button-block-appender/README.md */ exports.ButtonBlockerAppender = ButtonBlockerAppender; var _default = (0, _element.forwardRef)(ButtonBlockAppender); exports.default = _default; //# sourceMappingURL=index.js.map