@gechiui/block-editor
Version:
50 lines (41 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addGeneratedClassName = addGeneratedClassName;
var _lodash = require("lodash");
var _hooks = require("@gechiui/hooks");
var _blocks = require("@gechiui/blocks");
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
/**
* Override props assigned to save component to inject generated className if
* block supports it. This is only applied if the block's save result is an
* element and not a markup string.
*
* @param {Object} extraProps Additional props applied to save element.
* @param {Object} blockType Block type.
*
* @return {Object} Filtered props applied to save element.
*/
function addGeneratedClassName(extraProps, blockType) {
// Adding the generated className
if ((0, _blocks.hasBlockSupport)(blockType, 'className', true)) {
if (typeof extraProps.className === 'string') {
// We have some extra classes and want to add the default classname
// We use uniq to prevent duplicate classnames
extraProps.className = (0, _lodash.uniq)([(0, _blocks.getBlockDefaultClassName)(blockType.name), ...extraProps.className.split(' ')]).join(' ').trim();
} else {
// There is no string in the className variable,
// so we just dump the default name in there
extraProps.className = (0, _blocks.getBlockDefaultClassName)(blockType.name);
}
}
return extraProps;
}
(0, _hooks.addFilter)('blocks.getSaveContent.extraProps', 'core/generated-class-name/save-props', addGeneratedClassName);
//# sourceMappingURL=generated-class-name.js.map