diff --git a/apps/blogai/lib/hooks/use-local-storage.ts b/apps/blogai/lib/hooks/use-local-storage.ts index c3ed1d3..3b9bfda 100644 --- a/apps/blogai/lib/hooks/use-local-storage.ts +++ b/apps/blogai/lib/hooks/use-local-storage.ts @@ -1,26 +1,62 @@ -"use client"; +import { useEffect, useState } from "react"; -import { useEffect, useState } from 'react' - -export const useLocalStorage = ( - key: string, - initialValue: T -): [T, (value: T) => void] => { - const [storedValue, setStoredValue] = useState(initialValue) +export const useLocalStorage = (key: string, initialValue: T): [T, (value: T) => void] => { + const [storedValue, setStoredValue] = useState(initialValue); useEffect(() => { - // Retrieve from localStorage - const item = window.localStorage.getItem(key) - if (item) { - setStoredValue(JSON.parse(item)) + if (typeof window !== "undefined") { + try { + const item = window.localStorage.getItem(key); + if (item) { + setStoredValue(JSON.parse(item)); + } + } catch (error) { + console.error("Error reading localStorage", error); + } } - }, [key]) + }, [key]); const setValue = (value: T) => { - // Save state - setStoredValue(value) - // Save to localStorage - window.localStorage.setItem(key, JSON.stringify(value)) - } - return [storedValue, setValue] -} + setStoredValue(value); + if (typeof window !== "undefined") { + try { + window.localStorage.setItem(key, JSON.stringify(value)); + } catch (error) { + console.error("Error writing to localStorage", error); + } + } + }; + + return [storedValue, setValue]; +}; + + + + + +// "use client"; + +// import { useEffect, useState } from 'react' + +// export const useLocalStorage = ( +// key: string, +// initialValue: T +// ): [T, (value: T) => void] => { +// const [storedValue, setStoredValue] = useState(initialValue) + +// useEffect(() => { +// // Retrieve from localStorage +// const item = window.localStorage.getItem(key) +// if (item) { +// setStoredValue(JSON.parse(item)) +// } +// }, [key]) + +// const setValue = (value: T) => { +// // Save state +// setStoredValue(value) +// // Save to localStorage +// window.localStorage.setItem(key, JSON.stringify(value)) +// } +// return [storedValue, setValue] +// }