@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
95 lines (81 loc) • 3.33 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 _i18n = require("@wordpress/i18n");
var _data = require("@wordpress/data");
var _blockEditor = require("@wordpress/block-editor");
var _wordCount = _interopRequireDefault(require("../word-count"));
var _documentOutline = _interopRequireDefault(require("../document-outline"));
var _characterCount = _interopRequireDefault(require("../character-count"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function TableOfContentsPanel({
hasOutlineItemsDisabled,
onRequestClose
}) {
const {
headingCount,
paragraphCount,
numberOfBlocks
} = (0, _data.useSelect)(select => {
const {
getGlobalBlockCount
} = select(_blockEditor.store);
return {
headingCount: getGlobalBlockCount('core/heading'),
paragraphCount: getGlobalBlockCount('core/paragraph'),
numberOfBlocks: getGlobalBlockCount()
};
}, []);
return (
/*
* Disable reason: The `list` ARIA role is redundant but
* Safari+VoiceOver won't announce the list otherwise.
*/
/* eslint-disable jsx-a11y/no-redundant-roles */
(0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("div", {
className: "table-of-contents__wrapper",
role: "note",
"aria-label": (0, _i18n.__)('Document Statistics'),
tabIndex: "0"
}, (0, _element.createElement)("ul", {
role: "list",
className: "table-of-contents__counts"
}, (0, _element.createElement)("li", {
className: "table-of-contents__count"
}, (0, _i18n.__)('Characters'), (0, _element.createElement)("span", {
className: "table-of-contents__number"
}, (0, _element.createElement)(_characterCount.default, null))), (0, _element.createElement)("li", {
className: "table-of-contents__count"
}, (0, _i18n.__)('Words'), (0, _element.createElement)(_wordCount.default, null)), (0, _element.createElement)("li", {
className: "table-of-contents__count"
}, (0, _i18n.__)('Headings'), (0, _element.createElement)("span", {
className: "table-of-contents__number"
}, headingCount)), (0, _element.createElement)("li", {
className: "table-of-contents__count"
}, (0, _i18n.__)('Paragraphs'), (0, _element.createElement)("span", {
className: "table-of-contents__number"
}, paragraphCount)), (0, _element.createElement)("li", {
className: "table-of-contents__count"
}, (0, _i18n.__)('Blocks'), (0, _element.createElement)("span", {
className: "table-of-contents__number"
}, numberOfBlocks)))), headingCount > 0 && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("hr", null), (0, _element.createElement)("h2", {
className: "table-of-contents__title"
}, (0, _i18n.__)('Document Outline')), (0, _element.createElement)(_documentOutline.default, {
onSelect: onRequestClose,
hasOutlineItemsDisabled: hasOutlineItemsDisabled
})))
/* eslint-enable jsx-a11y/no-redundant-roles */
);
}
var _default = TableOfContentsPanel;
exports.default = _default;
//# sourceMappingURL=panel.js.map