refun
Version:
A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:
35 lines (26 loc) • 1.03 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapHandlers = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = require("react");
var _tsfn = require("tsfn");
var mapHandlers = function mapHandlers(handlers) {
return function (props) {
var actualHandlers = (0, _react.useRef)(_tsfn.EMPTY_OBJECT);
var propsRef = (0, _react.useRef)(props);
propsRef.current = props;
if (actualHandlers.current === _tsfn.EMPTY_OBJECT) {
actualHandlers.current = (0, _tsfn.getObjectKeys)(handlers).reduce(function (result, key) {
result[key] = function () {
return handlers[key](propsRef.current).apply(void 0, arguments);
};
return result;
}, {});
}
return (0, _extends2.default)({}, props, actualHandlers.current);
};
};
exports.mapHandlers = mapHandlers;
//# sourceMappingURL=map-handlers.js.map