UNPKG

@gechiui/compose

Version:
25 lines (23 loc) 844 B
/** * 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