import { useMemo, useState } from "react"; export const useObjectState = >( initialState: T, ) => { const [state, setState] = useState(initialState); const dispatch = useMemo(() => { return (value: Mutate) => { setState((prev) => { const newState = typeof value === "function" ? value(prev) : value; return { ...prev, ...newState }; }); }; }, []); return [state, dispatch] as const; };