Home / Function/ useLocalStorage() — supabase Function Reference

useLocalStorage() — supabase Function Reference

Architecture documentation for the useLocalStorage() function in use-local-storage.tsx from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  ea17971a_1c02_abd3_4eb0_642abdb391f3["useLocalStorage()"]
  6dab894a_a956_6f28_44d9_6d3388713095["Command()"]
  6dab894a_a956_6f28_44d9_6d3388713095 -->|calls| ea17971a_1c02_abd3_4eb0_642abdb391f3
  style ea17971a_1c02_abd3_4eb0_642abdb391f3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/learn/components/use-local-storage.tsx lines 5–47

export function useLocalStorage<T>(key: string, initialValue: T) {
  // State to store our value
  // Pass initial state function to useState so logic is only executed once
  const [storedValue, setStoredValue] = useState<T>(() => {
    if (typeof window === 'undefined') {
      return initialValue
    }

    try {
      // Get from local storage by key
      const item = window.localStorage.getItem(key)
      // Parse stored json or if none return initialValue
      return item ? JSON.parse(item) : initialValue
    } catch (error) {
      // If error also return initialValue
      console.log(error)
      return initialValue
    }
  })

  // Return a wrapped version of useState's setter function that ...
  // ... persists the new value to localStorage.
  const setValue = useCallback(
    (value: T | ((val: T) => T)) => {
      try {
        // Allow value to be a function so we have same API as useState
        const valueToStore = value instanceof Function ? value(storedValue) : value
        // Save state
        setStoredValue(valueToStore)
        // Save to local storage
        if (typeof window !== 'undefined') {
          window.localStorage.setItem(key, JSON.stringify(valueToStore))
        }
      } catch (error) {
        // A more advanced implementation would handle the error case
        console.log(error)
      }
    },
    [key, storedValue]
  )

  return [storedValue, setValue] as const
}

Subdomains

Called By

Frequently Asked Questions

What does useLocalStorage() do?
useLocalStorage() is a function in the supabase codebase.
What calls useLocalStorage()?
useLocalStorage() is called by 1 function(s): Command.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free