@wordpress/block-editor
Version:
93 lines (78 loc) • 2.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = BlockNavigationAppender;
var _element = require("@wordpress/element");
var _classnames = _interopRequireDefault(require("classnames"));
var _components = require("@wordpress/components");
var _compose = require("@wordpress/compose");
var _i18n = require("@wordpress/i18n");
var _data = require("@wordpress/data");
var _leaf = _interopRequireDefault(require("./leaf"));
var _indentation = _interopRequireDefault(require("./indentation"));
var _inserter = _interopRequireDefault(require("../inserter"));
var _store = require("../../store");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BlockNavigationAppender({
parentBlockClientId,
position,
level,
rowCount,
path
}) {
const isDragging = (0, _data.useSelect)(select => {
const {
isBlockBeingDragged,
isAncestorBeingDragged
} = select(_store.store);
return isBlockBeingDragged(parentBlockClientId) || isAncestorBeingDragged(parentBlockClientId);
}, [parentBlockClientId]);
const instanceId = (0, _compose.useInstanceId)(BlockNavigationAppender);
const descriptionId = `block-navigation-appender-row__description_${instanceId}`;
const appenderPositionDescription = (0, _i18n.sprintf)(
/* translators: 1: The numerical position of the block that will be inserted. 2: The level of nesting for the block that will be inserted. */
(0, _i18n.__)('Add block at position %1$d, Level %2$d'), position, level);
return (0, _element.createElement)(_leaf.default, {
className: (0, _classnames.default)({
'is-dragging': isDragging
}),
level: level,
position: position,
rowCount: rowCount,
path: path
}, (0, _element.createElement)(_components.__experimentalTreeGridCell, {
className: "block-editor-block-navigation-appender__cell",
colSpan: "3"
}, ({
ref,
tabIndex,
onFocus
}) => (0, _element.createElement)("div", {
className: "block-editor-block-navigation-appender__container"
}, (0, _element.createElement)(_indentation.default, {
level: level
}), (0, _element.createElement)(_inserter.default, {
rootClientId: parentBlockClientId,
__experimentalIsQuick: true,
"aria-describedby": descriptionId,
toggleProps: {
ref,
tabIndex,
onFocus
}
}), (0, _element.createElement)("div", {
className: "block-editor-block-navigation-appender__description",
id: descriptionId
}, appenderPositionDescription))));
}
//# sourceMappingURL=appender.js.map