@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
70 lines (56 loc) • 1.92 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _i18n = require("@wordpress/i18n");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _icons = require("@wordpress/icons");
var _blockEditor = require("@wordpress/block-editor");
var _panel = _interopRequireDefault(require("./panel"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TableOfContents({
hasOutlineItemsDisabled,
repositionDropdown,
...props
}, ref) {
const hasBlocks = (0, _data.useSelect)(select => !!select(_blockEditor.store).getBlockCount(), []);
return (0, _element.createElement)(_components.Dropdown, {
position: repositionDropdown ? 'middle right right' : 'bottom',
className: "table-of-contents",
contentClassName: "table-of-contents__popover",
renderToggle: ({
isOpen,
onToggle
}) => (0, _element.createElement)(_components.Button, (0, _extends2.default)({}, props, {
ref: ref,
onClick: hasBlocks ? onToggle : undefined,
icon: _icons.info,
"aria-expanded": isOpen,
"aria-haspopup": "true"
/* translators: button label text should, if possible, be under 16 characters. */
,
label: (0, _i18n.__)('Details'),
tooltipPosition: "bottom",
"aria-disabled": !hasBlocks
})),
renderContent: ({
onClose
}) => (0, _element.createElement)(_panel.default, {
onRequestClose: onClose,
hasOutlineItemsDisabled: hasOutlineItemsDisabled
})
});
}
var _default = (0, _element.forwardRef)(TableOfContents);
exports.default = _default;
//# sourceMappingURL=index.js.map