From 3e89d2998588f8e35c524e523ba2ee853f0f6475 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Mon, 20 Apr 2026 11:31:17 +0200 Subject: refactor: restructure files to their domains, new preview overlay system, and dep graph --- apps/web/src/hooks/storage/use-local-storage.ts | 58 ------------------------- 1 file changed, 58 deletions(-) delete mode 100644 apps/web/src/hooks/storage/use-local-storage.ts (limited to 'apps/web/src/hooks/storage') diff --git a/apps/web/src/hooks/storage/use-local-storage.ts b/apps/web/src/hooks/storage/use-local-storage.ts deleted file mode 100644 index d0188ab3..00000000 --- a/apps/web/src/hooks/storage/use-local-storage.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { useState, useEffect, useCallback, useRef } from "react"; - -export function useLocalStorage({ - key, - defaultValue, -}: { - key: string; - defaultValue: T; -}): [ - T, - ({ value }: { value: T | ((previousValue: T) => T) }) => void, - boolean, -] { - const [value, setValue] = useState(defaultValue); - const [isReady, setIsReady] = useState(false); - const valueRef = useRef(defaultValue); - - // avoid hydration mismatch by reading after mount - useEffect(() => { - try { - const storedValue = localStorage.getItem(key); - if (storedValue !== null) { - const parsedValue = JSON.parse(storedValue) as T; - valueRef.current = parsedValue; - setValue(parsedValue); - } - } catch { - // localstorage might be unavailable - } - setIsReady(true); - }, [key]); - - // sync to localstorage after hydration - useEffect(() => { - if (!isReady) return; - - try { - localStorage.setItem(key, JSON.stringify(value)); - } catch { - // localstorage might be full or disabled - } - }, [key, value, isReady]); - - const setValueWithCallback = useCallback( - ({ value: nextValue }: { value: T | ((previousValue: T) => T) }) => { - const resolvedValue = - typeof nextValue === "function" - ? (nextValue as (previousValue: T) => T)(valueRef.current) - : nextValue; - - valueRef.current = resolvedValue; - setValue(resolvedValue); - }, - [], - ); - - return [value, setValueWithCallback, isReady]; -} -- cgit v1.3.1