UNPKG

@gechiui/compose

Version:
45 lines (37 loc) 1.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@gechiui/element"); var _createHigherOrderComponent = _interopRequireDefault(require("../../utils/create-higher-order-component")); /** * Internal dependencies */ /** * Higher-order component creator, creating a new component which renders if * the given condition is satisfied or with the given optional prop name. * * @example * ```ts * type Props = { foo: string }; * const Component = ( props: Props ) => <div>{ props.foo }</div>; * const ConditionalComponent = ifCondition( ( props: Props ) => props.foo.length !== 0 )( Component ); * <ConditionalComponent foo="" />; // => null * <ConditionalComponent foo="bar" />; // => <div>bar</div>; * ``` * * @param predicate Function to test condition. * * @return Higher-order component. */ const ifCondition = predicate => (0, _createHigherOrderComponent.default)(WrappedComponent => props => { if (!predicate(props)) { return null; } return (0, _element.createElement)(WrappedComponent, props); }, 'ifCondition'); var _default = ifCondition; exports.default = _default; //# sourceMappingURL=index.js.map