@orca-fe/hooks
Version:
React Hooks Collections
31 lines • 1 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { useState } from 'react';
import { useMemoizedFn } from 'ahooks';
function useGetState(initialState) {
var _useState = useState(() => ({
// @ts-expect-error
state: typeof initialState === 'function' ? initialState() : initialState
})),
_useState2 = _slicedToArray(_useState, 1),
_this = _useState2[0];
var getState = useMemoizedFn(() => _this.state);
var _useState3 = useState(_this.state),
_useState4 = _slicedToArray(_useState3, 2),
state = _useState4[0],
_setState = _useState4[1];
var setState = useMemoizedFn(state => {
if (typeof state === 'function') {
_setState(originState => {
// @ts-expect-error
var newState = state(originState);
_this.state = newState;
return newState;
});
} else {
_this.state = state;
_setState(state);
}
});
return [state, setState, getState];
}
export default useGetState;