diff --git a/frontend/src/hooks/useLocalStorage.jsx b/frontend/src/hooks/useLocalStorage.jsx new file mode 100644 index 00000000..450c55df --- /dev/null +++ b/frontend/src/hooks/useLocalStorage.jsx @@ -0,0 +1,28 @@ +import React, { useEffect, useState } from 'react'; + +const useLocalStorage = (key, defaultValue) => { + const localKey = key; + + const [value, setValue] = useState(() => { + try { + const item = localStorage.getItem(localKey); + return item ? JSON.parse(item) : defaultValue; + } catch (error) { + console.error(`Error reading key "${localKey}":`, error); + } + + return defaultValue; + }); + + useEffect(() => { + try { + localStorage.setItem(localKey, JSON.stringify(value)); + } catch (error) { + console.error(`Error saving setting: ${localKey}:`, error); + } + }, [localKey, value]); + + return [value, setValue]; +}; + +export default useLocalStorage;