refun
Version:
A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:
31 lines (22 loc) • 960 B
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapWithPropsMemo = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = require("react");
var _tsfn = require("tsfn");
var _utils = require("./utils");
var mapWithPropsMemo = function mapWithPropsMemo(getFn, watchKeys) {
return function (props) {
var prevProps = (0, _react.useRef)(_tsfn.EMPTY_OBJECT);
var prevResult = (0, _react.useRef)(_tsfn.EMPTY_OBJECT);
if (prevResult.current === _tsfn.EMPTY_OBJECT || !(0, _utils.shallowEqualByKeys)(prevProps.current, props, watchKeys)) {
prevProps.current = props;
prevResult.current = getFn(props);
}
return (0, _extends2.default)({}, props, prevResult.current);
};
};
exports.mapWithPropsMemo = mapWithPropsMemo;
//# sourceMappingURL=map-with-props-memo.js.map