import { useContext, useCallback } from "react"; import { routerStateContext } from "../components/RouterProvider"; type SetRouterState = (value: T) => void; const useRouterState = ( id: string ): [T, SetRouterState] => { const { value, setValue } = useContext(routerStateContext); const setKeyValue = useCallback( (newValue) => { setValue((prevState) => ({ ...prevState, [id]: newValue })); }, [id, setValue] ); return [value[id], setKeyValue]; }; export default useRouterState;