UNPKG

refun

Version:

A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:

43 lines (31 loc) 1.49 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.mapStateRef = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = require("react"); var _tsfn = require("tsfn"); var _utils = require("./utils"); var mapStateRef = function mapStateRef(stateName, stateFlusherName, getValue, watchKeys) { return function (props) { var _extends2; var useStateResult = (0, _react.useState)(_tsfn.EMPTY_OBJECT); var prevProps = (0, _react.useRef)(_tsfn.EMPTY_OBJECT); var stateRef = (0, _react.useRef)(_tsfn.EMPTY_OBJECT); var stateFlushRef = (0, _react.useRef)(_tsfn.NOOP); if (stateFlushRef.current === _tsfn.NOOP) { stateFlushRef.current = function () { useStateResult[1]({}); }; } if (prevProps.current === _tsfn.EMPTY_OBJECT || !(0, _utils.shallowEqualByKeys)(prevProps.current, props, watchKeys)) { stateRef.current = getValue(props); } prevProps.current = props; return (0, _extends3.default)({}, props, (_extends2 = {}, (0, _defineProperty2.default)(_extends2, stateName, stateRef), (0, _defineProperty2.default)(_extends2, stateFlusherName, stateFlushRef.current), _extends2)); }; }; exports.mapStateRef = mapStateRef; //# sourceMappingURL=map-state-ref.js.map