From 260b57576a78bcddd02eb0c2aae7cfdb201b477c Mon Sep 17 00:00:00 2001 From: dekzter Date: Wed, 23 Apr 2025 11:02:28 -0400 Subject: [PATCH] initial commit --- frontend/src/hooks/useLocalStorage.jsx | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 frontend/src/hooks/useLocalStorage.jsx 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;