github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/hooks/useLocalStorage.ts (about) 1 import { useCallback, useState } from "react"; 2 3 const useLocalStorage = (key): [string | null, (string) => void] => { 4 const [value, setValue] = useState(localStorage.getItem(key)); 5 const setItem = useCallback( 6 (newValue) => { 7 try { 8 if (newValue) { 9 localStorage.setItem(key, newValue); 10 } else { 11 localStorage.removeItem(key); 12 } 13 setValue(newValue); 14 } catch (err) { 15 console.error( 16 `Error setting setting value for local storage key [${key}]`, 17 err 18 ); 19 } 20 }, 21 [key] 22 ); 23 return [value, setItem]; 24 }; 25 26 export default useLocalStorage;