@gechiui/compose
Version:
GeChiUI higher-order components (HOCs).
34 lines (29 loc) • 991 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
/**
* External dependencies
*/
/**
* Given a function mapping a component to an enhanced component and modifier
* name, returns the enhanced component augmented with a generated displayName.
*
* @param mapComponent Function mapping component to enhanced component.
* @param modifierName Seed name from which to generated display name.
*
* @return Component class with generated display name assigned.
*/
function createHigherOrderComponent(mapComponent, modifierName) {
return Inner => {
const Outer = mapComponent(Inner);
const displayName = Inner.displayName || Inner.name || 'Component';
Outer.displayName = `${(0, _lodash.upperFirst)((0, _lodash.camelCase)(modifierName))}(${displayName})`;
return Outer;
};
}
var _default = createHigherOrderComponent;
exports.default = _default;
//# sourceMappingURL=index.js.map