@vue-widget/hooks
Version:
hooks from react to vue
15 lines (14 loc) • 599 B
JavaScript
import { __assign } from "tslib";
import { useState } from "../useState";
import { useMemoizedFn } from "../useMemoizedFn";
import { isFunction } from "../utils";
export var useSetState = function (initialState) {
var _a = useState(initialState), state = _a[0], setState = _a[1];
var setMergeState = useMemoizedFn(function (patch) {
setState(function (prevState) {
var newState = isFunction(patch) ? patch(prevState) : patch;
return newState ? __assign(__assign({}, prevState), newState) : prevState;
});
});
return [state, setMergeState];
};