UNPKG

refun

Version:

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

47 lines (32 loc) 1.58 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.mapState = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _tsfn = require("tsfn"); var _utils = require("./utils"); var mapState = function mapState(stateName, stateSetterName, getValue, watchKeys) { return function (props) { var _extends2; var prevProps = (0, _react.useRef)(_tsfn.EMPTY_OBJECT); var _useState = (0, _react.useState)(prevProps.current === _tsfn.EMPTY_OBJECT ? getValue(props) : _tsfn.EMPTY_OBJECT), _useState2 = (0, _slicedToArray2.default)(_useState, 2), state = _useState2[0], setState = _useState2[1]; var nextState = state; if (prevProps.current !== _tsfn.EMPTY_OBJECT && !(0, _utils.shallowEqualByKeys)(prevProps.current, props, watchKeys)) { nextState = getValue(props); if (nextState !== state) { setState(nextState); } } prevProps.current = props; return (0, _extends3.default)({}, props, (_extends2 = {}, (0, _defineProperty2.default)(_extends2, stateName, nextState), (0, _defineProperty2.default)(_extends2, stateSetterName, setState), _extends2)); }; }; exports.mapState = mapState; //# sourceMappingURL=map-state.js.map