react-with-hoc
Version:
Work with React and HOCs (Higher-Order Components)
40 lines (39 loc) • 3.8 kB
JavaScript
exports.getTargetByProps = getTargetByProps;
var _react = require("react");
function getTargetByProps({
props,
name,
TargetComponent,
options
}) {
if (typeof props[name] === "function") {
return props[name](TargetComponent);
}
if (typeof props[name] === "object" && props[name] !== null && !(0, _react.isValidElement)(props[name])) {
return function FromPropObject(myProps) {
return /*#__PURE__*/_react.default.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiZ2V0VGFyZ2V0QnlQcm9wcyIsInByb3BzIiwibmFtZSIsIlRhcmdldENvbXBvbmVudCIsIm9wdGlvbnMiLCJpc1ZhbGlkRWxlbWVudCIsIkZyb21Qcm9wT2JqZWN0IiwibXlQcm9wcyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiaGlkZGVuQnlEZWZhdWx0IiwiTnVsbCIsIkZyb21Qcm9wIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2dldFRhcmdldEJ5UHJvcHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRUeXBlLCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFyZ2V0QnlQcm9wcyh7XG4gIHByb3BzLFxuICBuYW1lLFxuICBUYXJnZXRDb21wb25lbnQsXG4gIG9wdGlvbnMsXG59OiB7XG4gIHByb3BzOiBhbnk7XG4gIG5hbWU6IHN0cmluZztcbiAgVGFyZ2V0Q29tcG9uZW50OiBDb21wb25lbnRUeXBlO1xuICBvcHRpb25zOiBhbnk7XG59KTogYW55IHtcbiAgaWYgKHR5cGVvZiBwcm9wc1tuYW1lXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHByb3BzW25hbWVdKFRhcmdldENvbXBvbmVudCk7XG4gIH1cbiAgaWYgKFxuICAgIHR5cGVvZiBwcm9wc1tuYW1lXSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHByb3BzW25hbWVdICE9PSBudWxsICYmXG4gICAgIWlzVmFsaWRFbGVtZW50KHByb3BzW25hbWVdKVxuICApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gRnJvbVByb3BPYmplY3QobXlQcm9wczogYW55KTogYW55IHtcbiAgICAgIHJldHVybiA8VGFyZ2V0Q29tcG9uZW50IHsuLi5teVByb3BzfSB7Li4ucHJvcHNbbmFtZV19IC8+O1xuICAgIH07XG4gIH1cbiAgaWYgKG9wdGlvbnMuaGlkZGVuQnlEZWZhdWx0KSB7XG4gICAgaWYgKHByb3BzW25hbWVdID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gVGFyZ2V0Q29tcG9uZW50O1xuICAgIH1cbiAgICBpZiAoIXByb3BzW25hbWVdKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gTnVsbCgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAobmFtZSBpbiBwcm9wcykge1xuICAgIHJldHVybiBmdW5jdGlvbiBGcm9tUHJvcCgpOiBhbnkge1xuICAgICAgcmV0dXJuIHByb3BzW25hbWVdO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gVGFyZ2V0Q29tcG9uZW50O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFTyxTQUFTQyxnQkFBZ0JBLENBQUM7RUFDL0JDLEtBQUs7RUFDTEMsSUFBSTtFQUNKQyxlQUFlO0VBQ2ZDO0FBTUYsQ0FBQyxFQUFPO0VBQ04sSUFBSSxPQUFPSCxLQUFLLENBQUNDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtJQUNyQyxPQUFPRCxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUFDQyxlQUFlLENBQUM7RUFDckM7RUFDQSxJQUNFLE9BQU9GLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUMvQkQsS0FBSyxDQUFDQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQ3BCLENBQUMsSUFBQUcscUJBQWMsRUFBQ0osS0FBSyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxFQUM1QjtJQUNBLE9BQU8sU0FBU0ksY0FBY0EsQ0FBQ0MsT0FBWSxFQUFPO01BQ2hELG9CQUFPVCxNQUFBLENBQUFVLE9BQUEsQ0FBQUMsYUFBQSxDQUFDTixlQUFlO1FBQUEsR0FBS0ksT0FBTztRQUFBLEdBQU1OLEtBQUssQ0FBQ0MsSUFBSTtNQUFDLENBQUcsQ0FBQztJQUMxRCxDQUFDO0VBQ0g7RUFDQSxJQUFJRSxPQUFPLENBQUNNLGVBQWUsRUFBRTtJQUMzQixJQUFJVCxLQUFLLENBQUNDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtNQUN4QixPQUFPQyxlQUFlO0lBQ3hCO0lBQ0EsSUFBSSxDQUFDRixLQUFLLENBQUNDLElBQUksQ0FBQyxFQUFFO01BQ2hCLE9BQU8sU0FBU1MsSUFBSUEsQ0FBQSxFQUFHO1FBQ3JCLE9BQU8sSUFBSTtNQUNiLENBQUM7SUFDSDtFQUNGO0VBQ0EsSUFBSVQsSUFBSSxJQUFJRCxLQUFLLEVBQUU7SUFDakIsT0FBTyxTQUFTVyxRQUFRQSxDQUFBLEVBQVE7TUFDOUIsT0FBT1gsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztFQUNIO0VBRUEsT0FBT0MsZUFBZTtBQUN4QiJ9
//# sourceMappingURL=getTargetByProps.js.map
;