UNPKG

react-with-hoc

Version:

Work with React and HOCs (Higher-Order Components)

37 lines 3.71 kB
import React, { isValidElement } from "react"; export function getTargetByProps({ props, name, TargetComponent, options }) { if (typeof props[name] === "function") { return props[name](TargetComponent); } if (typeof props[name] === "object" && props[name] !== null && !isValidElement(props[name])) { return function FromPropObject(myProps) { return /*#__PURE__*/React.createElement(TargetComponent, { ...myProps, ...props[name] }); }; } if (options.hiddenByDefault) { if (props[name] === true) { return TargetComponent; } if (!props[name]) { return function Null() { return null; }; } } if (name in props) { return function FromProp() { return props[name]; }; } return TargetComponent; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImlzVmFsaWRFbGVtZW50IiwiZ2V0VGFyZ2V0QnlQcm9wcyIsInByb3BzIiwibmFtZSIsIlRhcmdldENvbXBvbmVudCIsIm9wdGlvbnMiLCJGcm9tUHJvcE9iamVjdCIsIm15UHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiaGlkZGVuQnlEZWZhdWx0IiwiTnVsbCIsIkZyb21Qcm9wIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2dldFRhcmdldEJ5UHJvcHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFyZ2V0QnlQcm9wcyh7XG4gIHByb3BzLFxuICBuYW1lLFxuICBUYXJnZXRDb21wb25lbnQsXG4gIG9wdGlvbnMsXG59OiB7XG4gIHByb3BzOiBhbnk7XG4gIG5hbWU6IHN0cmluZztcbiAgVGFyZ2V0Q29tcG9uZW50OiBDb21wb25lbnRUeXBlO1xuICBvcHRpb25zOiBhbnk7XG59KTogYW55IHtcbiAgaWYgKHR5cGVvZiBwcm9wc1tuYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHByb3BzW25hbWVdKFRhcmdldENvbXBvbmVudCk7XG4gIH1cbiAgaWYgKFxuICAgIHR5cGVvZiBwcm9wc1tuYW1lXSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHByb3BzW25hbWVdICE9PSBudWxsICYmXG4gICAgIWlzVmFsaWRFbGVtZW50KHByb3BzW25hbWVdKVxuICApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gRnJvbVByb3BPYmplY3QobXlQcm9wczogYW55KTogYW55IHtcbiAgICAgIHJldHVybiA8VGFyZ2V0Q29tcG9uZW50IHsuLi5teVByb3BzfSB7Li4ucHJvcHNbbmFtZV19IC8+O1xuICAgIH07XG4gIH1cbiAgaWYgKG9wdGlvbnMuaGlkZGVuQnlEZWZhdWx0KSB7XG4gICAgaWYgKHByb3BzW25hbWVdID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gVGFyZ2V0Q29tcG9uZW50O1xuICAgIH1cbiAgICBpZiAoIXByb3BzW25hbWVdKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gTnVsbCgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAobmFtZSBpbiBwcm9wcykge1xuICAgIHJldHVybiBmdW5jdGlvbiBGcm9tUHJvcCgpOiBhbnkge1xuICAgICAgcmV0dXJuIHByb3BzW25hbWVdO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gVGFyZ2V0Q29tcG9uZW50O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLElBQW1CQyxjQUFjLFFBQVEsT0FBTztBQUU1RCxPQUFPLFNBQVNDLGdCQUFnQkEsQ0FBQztFQUMvQkMsS0FBSztFQUNMQyxJQUFJO0VBQ0pDLGVBQWU7RUFDZkM7QUFNRixDQUFDLEVBQU87RUFDTixJQUFJLE9BQU9ILEtBQUssQ0FBQ0MsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0lBQ3JDLE9BQU9ELEtBQUssQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLGVBQWUsQ0FBQztFQUNyQztFQUNBLElBQ0UsT0FBT0YsS0FBSyxDQUFDQyxJQUFJLENBQUMsS0FBSyxRQUFRLElBQy9CRCxLQUFLLENBQUNDLElBQUksQ0FBQyxLQUFLLElBQUksSUFDcEIsQ0FBQ0gsY0FBYyxDQUFDRSxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUFDLEVBQzVCO0lBQ0EsT0FBTyxTQUFTRyxjQUFjQSxDQUFDQyxPQUFZLEVBQU87TUFDaEQsb0JBQU9SLEtBQUEsQ0FBQVMsYUFBQSxDQUFDSixlQUFlO1FBQUEsR0FBS0csT0FBTztRQUFBLEdBQU1MLEtBQUssQ0FBQ0MsSUFBSTtNQUFDLENBQUcsQ0FBQztJQUMxRCxDQUFDO0VBQ0g7RUFDQSxJQUFJRSxPQUFPLENBQUNJLGVBQWUsRUFBRTtJQUMzQixJQUFJUCxLQUFLLENBQUNDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtNQUN4QixPQUFPQyxlQUFlO0lBQ3hCO0lBQ0EsSUFBSSxDQUFDRixLQUFLLENBQUNDLElBQUksQ0FBQyxFQUFFO01BQ2hCLE9BQU8sU0FBU08sSUFBSUEsQ0FBQSxFQUFHO1FBQ3JCLE9BQU8sSUFBSTtNQUNiLENBQUM7SUFDSDtFQUNGO0VBQ0EsSUFBSVAsSUFBSSxJQUFJRCxLQUFLLEVBQUU7SUFDakIsT0FBTyxTQUFTUyxRQUFRQSxDQUFBLEVBQVE7TUFDOUIsT0FBT1QsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztFQUNIO0VBRUEsT0FBT0MsZUFBZTtBQUN4QiJ9 //# sourceMappingURL=getTargetByProps.js.map