@gechiui/block-editor
Version:
94 lines (82 loc) • 2.41 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@gechiui/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _classnames = _interopRequireDefault(require("classnames"));
var _data = require("@gechiui/data");
var _blockSelectButton = _interopRequireDefault(require("./block-select-button"));
var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
var _store = require("../../store");
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
const ListViewBlockContents = (0, _element.forwardRef)((_ref, ref) => {
let {
onClick,
onToggleExpanded,
block,
isSelected,
position,
siblingBlockCount,
level,
...props
} = _ref;
const {
clientId
} = block;
const {
blockMovingClientId,
selectedBlockInBlockEditor
} = (0, _data.useSelect)(select => {
const {
getBlockRootClientId,
hasBlockMovingClientId,
getSelectedBlockClientId
} = select(_store.store);
return {
rootClientId: getBlockRootClientId(clientId) || '',
blockMovingClientId: hasBlockMovingClientId(),
selectedBlockInBlockEditor: getSelectedBlockClientId()
};
}, [clientId]);
const isBlockMoveTarget = blockMovingClientId && selectedBlockInBlockEditor === clientId;
const className = (0, _classnames.default)('block-editor-list-view-block-contents', {
'is-dropping-before': isBlockMoveTarget
});
return (0, _element.createElement)(_blockDraggable.default, {
clientIds: [block.clientId]
}, _ref2 => {
let {
draggable,
onDragStart,
onDragEnd
} = _ref2;
return (0, _element.createElement)(_blockSelectButton.default, (0, _extends2.default)({
ref: ref,
className: className,
block: block,
onClick: onClick,
onToggleExpanded: onToggleExpanded,
isSelected: isSelected,
position: position,
siblingBlockCount: siblingBlockCount,
level: level,
draggable: draggable,
onDragStart: onDragStart,
onDragEnd: onDragEnd
}, props));
});
});
var _default = ListViewBlockContents;
exports.default = _default;
//# sourceMappingURL=block-contents.js.map