refun
Version:
A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:
36 lines (27 loc) • 1.11 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mapHandlersFactory = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = require("react");
var _tsfn = require("tsfn");
var mapHandlersFactory = function mapHandlersFactory(getHandlers) {
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) {
var handlers = getHandlers(props);
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.mapHandlersFactory = mapHandlersFactory;
//# sourceMappingURL=map-handlers-factory.js.map