@wordpress/block-editor
Version:
96 lines (90 loc) • 3.04 kB
JavaScript
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
;