@gechiui/block-editor
Version:
57 lines (43 loc) • 1.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useBlockControlsFill;
var _blocks = require("@gechiui/blocks");
var _data = require("@gechiui/data");
var _groups = _interopRequireDefault(require("./groups"));
var _store = require("../../store");
var _context = require("../block-edit/context");
var _useDisplayBlockControls = _interopRequireDefault(require("../use-display-block-controls"));
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
function useBlockControlsFill(group, shareWithChildBlocks) {
const isDisplayed = (0, _useDisplayBlockControls.default)();
const {
clientId
} = (0, _context.useBlockEditContext)();
const isParentDisplayed = (0, _data.useSelect)(select => {
const {
getBlockName,
hasSelectedInnerBlock
} = select(_store.store);
const {
hasBlockSupport
} = select(_blocks.store);
return shareWithChildBlocks && hasBlockSupport(getBlockName(clientId), '__experimentalExposeControlsToChildren', false) && hasSelectedInnerBlock(clientId);
}, [shareWithChildBlocks, clientId]);
if (isDisplayed) {
var _groups$group;
return (_groups$group = _groups.default[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Fill;
}
if (isParentDisplayed) {
return _groups.default.parent.Fill;
}
return null;
}
//# sourceMappingURL=hook.js.map