UNPKG

react-with-hoc

Version:

Work with React and HOCs (Higher-Order Components)

35 lines (34 loc) 4.47 kB
"use strict"; var _react = require("react"); var _newHoc = require("../utils/newHoc"); /** * adds a prop value to the component, the given value can not be override, which means the given value overrides others * @see {@link withOverrides} {@link withFactory} {@link withDefault} {@link withDefaults} * @example * function CardWithIcon({ content, icon }: { * content: string; * icon: "star" | "heart" | ...; * }) { * return <>...</> * } * const StandardCard = withOverride("icon", "star")(CardWithIcon); * * <StandardCard content="some content" /> * // is equivalent to * <CardWithIcon content="some content" icon="star" /> * * // and * <StandardCard content="some content" icon="heart" /> // ❌ is a typescript error, but even though * // is equivalent to * <CardWithIcon content="some content" icon="star" /> */ const withOverride = exports.withOverride = (0, _newHoc.newHoc)(function withOverride(Component, propName, value) { return function WithOverride(props) { return /*#__PURE__*/_react.default.createElement(Component, { ...props, [propName]: value }); }; }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX25ld0hvYyIsIndpdGhPdmVycmlkZSIsImV4cG9ydHMiLCJuZXdIb2MiLCJDb21wb25lbnQiLCJwcm9wTmFtZSIsInZhbHVlIiwiV2l0aE92ZXJyaWRlIiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob2NzL3dpdGhPdmVycmlkZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFR5cGUsIEZ1bmN0aW9uQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICBIYXNBbGxQcm9wc0ZuLFxuICBJZlRoZW5GbixcbiAgSW50ZXJzZWN0aW9uRm4sXG4gIEtlZXBOZXZlcnNGbixcbiAgT21pdEZuLFxufSBmcm9tIFwiLi4vdHlwZXMvRm5cIjtcbmltcG9ydCB7IEhvYyB9IGZyb20gXCIuLi90eXBlcy9Ib2NcIjtcbmltcG9ydCB7IG5ld0hvYyB9IGZyb20gXCIuLi91dGlscy9uZXdIb2NcIjtcblxudHlwZSBXaXRoT3ZlcnJpZGVIb2MgPSA8UHJvcFZhbHVlLCBQcm9wTmFtZSBleHRlbmRzIHN0cmluZz4oXG4gIHByb3BOYW1lOiBQcm9wTmFtZSxcbiAgdmFsdWU6IFByb3BWYWx1ZSxcbikgPT4gSG9jPFxuICBbXG4gICAgSWZUaGVuRm48XG4gICAgICBIYXNBbGxQcm9wc0ZuPFByb3BOYW1lPixcbiAgICAgIFtcbiAgICAgICAgLi4uKFByb3BWYWx1ZSBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55XG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW0ludGVyc2VjdGlvbkZuPFtQcm9wTmFtZSwgUHJvcFZhbHVlXT5dKSxcbiAgICAgICAgS2VlcE5ldmVyc0ZuPE9taXRGbjxQcm9wTmFtZT4+LFxuICAgICAgXVxuICAgID4sXG4gIF1cbj47XG5cbi8qKlxuICogYWRkcyBhIHByb3AgdmFsdWUgdG8gdGhlIGNvbXBvbmVudCwgdGhlIGdpdmVuIHZhbHVlIGNhbiBub3QgYmUgb3ZlcnJpZGUsIHdoaWNoIG1lYW5zIHRoZSBnaXZlbiB2YWx1ZSBvdmVycmlkZXMgb3RoZXJzXG4gKiBAc2VlIHtAbGluayB3aXRoT3ZlcnJpZGVzfSB7QGxpbmsgd2l0aEZhY3Rvcnl9IHtAbGluayB3aXRoRGVmYXVsdH0ge0BsaW5rIHdpdGhEZWZhdWx0c31cbiAqIEBleGFtcGxlXG4gKiBmdW5jdGlvbiBDYXJkV2l0aEljb24oeyBjb250ZW50LCBpY29uIH06IHtcbiAqICAgY29udGVudDogc3RyaW5nO1xuICogICBpY29uOiBcInN0YXJcIiB8IFwiaGVhcnRcIiB8IC4uLjtcbiAqIH0pIHtcbiAqICAgcmV0dXJuIDw+Li4uPC8+XG4gKiB9XG4gKiBjb25zdCBTdGFuZGFyZENhcmQgPSB3aXRoT3ZlcnJpZGUoXCJpY29uXCIsIFwic3RhclwiKShDYXJkV2l0aEljb24pO1xuICpcbiAqIDxTdGFuZGFyZENhcmQgY29udGVudD1cInNvbWUgY29udGVudFwiIC8+XG4gKiAvLyBpcyBlcXVpdmFsZW50IHRvXG4gKiA8Q2FyZFdpdGhJY29uIGNvbnRlbnQ9XCJzb21lIGNvbnRlbnRcIiBpY29uPVwic3RhclwiIC8+XG4gKlxuICogLy8gYW5kXG4gKiA8U3RhbmRhcmRDYXJkIGNvbnRlbnQ9XCJzb21lIGNvbnRlbnRcIiBpY29uPVwiaGVhcnRcIiAvPiAvLyDinYwgaXMgYSB0eXBlc2NyaXB0IGVycm9yLCBidXQgZXZlbiB0aG91Z2hcbiAqIC8vIGlzIGVxdWl2YWxlbnQgdG9cbiAqIDxDYXJkV2l0aEljb24gY29udGVudD1cInNvbWUgY29udGVudFwiIGljb249XCJzdGFyXCIgLz5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhPdmVycmlkZSA9IG5ld0hvYzxXaXRoT3ZlcnJpZGVIb2M+KGZ1bmN0aW9uIHdpdGhPdmVycmlkZShcbiAgQ29tcG9uZW50OiBDb21wb25lbnRUeXBlLFxuICBwcm9wTmFtZTogc3RyaW5nLFxuICB2YWx1ZTogYW55LFxuKTogRnVuY3Rpb25Db21wb25lbnQge1xuICByZXR1cm4gZnVuY3Rpb24gV2l0aE92ZXJyaWRlKHByb3BzOiBhbnkpOiBKU1guRWxlbWVudCB7XG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnByb3BzfSB7Li4ueyBbcHJvcE5hbWVdOiB2YWx1ZSB9fSAvPjtcbiAgfTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNRSxZQUFZLEdBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFHLElBQUFFLGNBQU0sRUFBa0IsU0FBU0YsWUFBWUEsQ0FDdkVHLFNBQXdCLEVBQ3hCQyxRQUFnQixFQUNoQkMsS0FBVSxFQUNTO0VBQ25CLE9BQU8sU0FBU0MsWUFBWUEsQ0FBQ0MsS0FBVSxFQUFlO0lBQ3BELG9CQUFPVixNQUFBLENBQUFXLE9BQUEsQ0FBQUMsYUFBQSxDQUFDTixTQUFTO01BQUEsR0FBS0ksS0FBSztNQUFRLENBQUNILFFBQVEsR0FBR0M7SUFBSyxDQUFLLENBQUM7RUFDNUQsQ0FBQztBQUNILENBQUMsQ0FBQyJ9 //# sourceMappingURL=withOverride.js.map