ahooks
Version:
react hooks library
25 lines (24 loc) • 1.07 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _useMemoizedFn = _interopRequireDefault(require("../useMemoizedFn"));
var _utils = require("../utils");
function useSetState(initialState) {
var _useState = (0, _react.useState)(initialState !== null && initialState !== void 0 ? initialState : {}),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var setMergeState = (0, _useMemoizedFn["default"])(function (patch) {
setState(function (prevState) {
var newState = (0, _utils.isFunction)(patch) ? patch(prevState) : patch;
return newState ? Object.assign(Object.assign({}, prevState), newState) : prevState;
});
});
return [state, setMergeState];
}
var _default = exports["default"] = useSetState;