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;