UNPKG

react-with-hoc

Version:

Work with React and HOCs (Higher-Order Components)

29 lines 3.04 kB
/** * Apply multiple hocs * * @example * const NewComponent = withHocs([withWrapper(A), withWrapper(B)])(MyComponent) * <A> * <B> * <NewComponent ... /> * </B> * </A> * * @example * const MyComponent = (() => { * function MyComponent(props: { ... }) { * return <OtherComponents />; * } * return withHocs([ ... ])(MyComponent); * })(); * * @example * import { withHoc1, withHoc1 } from 'my-hocs' * // `withHoc1_2` can be used somewhere else * export const withHoc1_2 = withHocs([withHoc1, withHoc2]) */ export function withHocs(hocs) { return arg => hocs.reduceRight((Component, hoc) => hoc(Component), arg); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3aXRoSG9jcyIsImhvY3MiLCJhcmciLCJyZWR1Y2VSaWdodCIsIkNvbXBvbmVudCIsImhvYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob2NzL3dpdGhIb2NzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGbiB9IGZyb20gXCIuLi90eXBlcy9GblwiO1xuaW1wb3J0IHsgSG9jIH0gZnJvbSBcIi4uL3R5cGVzL0hvY1wiO1xuXG50eXBlIFdpdGhIb2NzQXJnID1cbiAgfCBIb2M8YW55PlxuICB8ICgoQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT4pID0+IENvbXBvbmVudFR5cGU8YW55Pik7XG5cbnR5cGUgV2l0aEhvY3NGbGF0PFxuICBIb2NzIGV4dGVuZHMgV2l0aEhvY3NBcmdbXSxcbiAgQWNjIGV4dGVuZHMgRm5bXSA9IFtdLFxuPiA9IEhvY3MgZXh0ZW5kcyBbaW5mZXIgZmlyc3QsIC4uLmluZmVyIHJlc3QgZXh0ZW5kcyBXaXRoSG9jc0FyZ1tdXVxuICA/IGZpcnN0IGV4dGVuZHMgSG9jPGluZmVyIEZucyBleHRlbmRzIEZuW10+XG4gICAgPyBXaXRoSG9jc0ZsYXQ8cmVzdCwgWy4uLkFjYywgLi4uRm5zXT5cbiAgICA6IFdpdGhIb2NzRmxhdDxyZXN0LCBBY2M+XG4gIDogQWNjO1xuXG4vKipcbiAqIEFwcGx5IG11bHRpcGxlIGhvY3NcbiAqXG4gKiAgQGV4YW1wbGVcbiAqIGNvbnN0IE5ld0NvbXBvbmVudCA9IHdpdGhIb2NzKFt3aXRoV3JhcHBlcihBKSwgd2l0aFdyYXBwZXIoQildKShNeUNvbXBvbmVudClcbiAqIDxBPlxuICogICA8Qj5cbiAqICAgICA8TmV3Q29tcG9uZW50IC4uLiAvPlxuICogICA8L0I+XG4gKiA8L0E+XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IE15Q29tcG9uZW50ID0gKCgpID0+IHtcbiAqICAgZnVuY3Rpb24gTXlDb21wb25lbnQocHJvcHM6IHsgLi4uIH0pIHtcbiAqICAgICByZXR1cm4gPE90aGVyQ29tcG9uZW50cyAvPjtcbiAqICAgfVxuICogICByZXR1cm4gd2l0aEhvY3MoWyAuLi4gXSkoTXlDb21wb25lbnQpO1xuICogfSkoKTtcbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgd2l0aEhvYzEsIHdpdGhIb2MxIH0gZnJvbSAnbXktaG9jcydcbiAqIC8vIGB3aXRoSG9jMV8yYCBjYW4gYmUgdXNlZCBzb21ld2hlcmUgZWxzZVxuICogZXhwb3J0IGNvbnN0IHdpdGhIb2MxXzIgPSB3aXRoSG9jcyhbd2l0aEhvYzEsIHdpdGhIb2MyXSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhIb2NzPGNvbnN0IEhvY3MgZXh0ZW5kcyByZWFkb25seSBXaXRoSG9jc0FyZ1tdPihcbiAgaG9jczogSG9jcyxcbik6IEhvYzxXaXRoSG9jc0ZsYXQ8Wy4uLkhvY3NdPj4ge1xuICByZXR1cm4gKGFyZzogYW55KSA9PlxuICAgIGhvY3MucmVkdWNlUmlnaHQoKENvbXBvbmVudCwgaG9jKSA9PiBob2MoQ29tcG9uZW50KSwgYXJnKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsUUFBUUEsQ0FDdEJDLElBQVUsRUFDb0I7RUFDOUIsT0FBUUMsR0FBUSxJQUNkRCxJQUFJLENBQUNFLFdBQVcsQ0FBQyxDQUFDQyxTQUFTLEVBQUVDLEdBQUcsS0FBS0EsR0FBRyxDQUFDRCxTQUFTLENBQUMsRUFBRUYsR0FBRyxDQUFDO0FBQzdEIn0= //# sourceMappingURL=withHocs.js.map