@gechiui/compose
Version:
GeChiUI higher-order components (HOCs).
25 lines (23 loc) • 844 B
JavaScript
/**
* External dependencies
*/
import { camelCase, upperFirst } from 'lodash';
/**
* 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 = `${upperFirst(camelCase(modifierName))}(${displayName})`;
return Outer;
};
}
export default createHigherOrderComponent;
//# sourceMappingURL=index.js.map