import React from "react"; export type UseLocalStorageParam< T extends { [key: string]: any } = { [key: string]: any } > = { key: keyof T; }; /** * # Use Local Storage */ export default function useLocalStorage< T extends Record | undefined = undefined >(param?: UseLocalStorageParam) { const [data, setData] = React.useState(); React.useEffect(() => { if (param?.key) { const value = localStorage.getItem(param.key as string); try { const jsonValue = JSON.parse(value || ""); setData(jsonValue as any); } catch (error) { setData(value as any); } } }, []); return { data }; }