(
initialState: T = {} as T
)
| 1 | import { useCallback, useState } from 'react'; |
| 2 | |
| 3 | const useSetState = <T extends object>( |
| 4 | initialState: T = {} as T |
| 5 | ): [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void] => { |
| 6 | const [state, set] = useState<T>(initialState); |
| 7 | const setState = useCallback((patch) => { |
| 8 | set((prevState) => |
| 9 | Object.assign({}, prevState, patch instanceof Function ? patch(prevState) : patch) |
| 10 | ); |
| 11 | }, []); |
| 12 | |
| 13 | return [state, setState]; |
| 14 | }; |
| 15 | |
| 16 | export default useSetState; |
searching dependent graphs…