@wordpress/block-editor
Version:
80 lines (76 loc) • 2.47 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 _blockSelectButton = _interopRequireDefault(require("./block-select-button"));
var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
var _context = require("./context");
var _jsxRuntime = require("react/jsx-runtime");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const ListViewBlockContents = (0, _element.forwardRef)(({
onClick,
onToggleExpanded,
block,
isSelected,
position,
siblingBlockCount,
level,
isExpanded,
selectedClientIds,
...props
}, ref) => {
const {
clientId
} = block;
const {
AdditionalBlockContent,
insertedBlock,
setInsertedBlock
} = (0, _context.useListViewContext)();
// Only include all selected blocks if the currently clicked on block
// is one of the selected blocks. This ensures that if a user attempts
// to drag a block that isn't part of the selection, they're still able
// to drag it and rearrange its position.
const draggableClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId];
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [AdditionalBlockContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(AdditionalBlockContent, {
block: block,
insertedBlock: insertedBlock,
setInsertedBlock: setInsertedBlock
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockDraggable.default, {
appendToOwnerDocument: true,
clientIds: draggableClientIds,
cloneClassname: "block-editor-list-view-draggable-chip",
children: ({
draggable,
onDragStart,
onDragEnd
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockSelectButton.default, {
ref: ref,
className: "block-editor-list-view-block-contents",
block: block,
onClick: onClick,
onToggleExpanded: onToggleExpanded,
isSelected: isSelected,
position: position,
siblingBlockCount: siblingBlockCount,
level: level,
draggable: draggable,
onDragStart: onDragStart,
onDragEnd: onDragEnd,
isExpanded: isExpanded,
...props
})
})]
});
});
var _default = exports.default = ListViewBlockContents;
//# sourceMappingURL=block-contents.js.map