import {useState} from 'react'; const useSetState = (initialState: T = {} as T): [T, (patch: Partial | Function) => void]=> { const [state, set] = useState(initialState); const setState = (patch) => { if (patch instanceof Function) { set((prevState) => { return Object.assign(state, patch(prevState)) }) } else { Object.assign(state, patch); set(state); } }; return [state, setState]; }; export default useSetState;