/** * useStorageManager - Hook for storage management utilities * * Provides utilities for viewing and manipulating localStorage/sessionStorage. */ import { useState, useCallback, useEffect } from 'react'; import { getLocalStorageEntries, getSessionStorageEntries, clearStorage as clearStorageUtil, } from '../utils/storage'; import type { StorageEntry } from '../types'; export interface UseStorageManagerReturn { localStorageEntries: StorageEntry[]; sessionStorageEntries: StorageEntry[]; clearStorage: (type: 'localStorage' | 'sessionStorage', key?: string) => void; refreshEntries: () => void; } export function useStorageManager(): UseStorageManagerReturn { const [localStorageEntries, setLocalStorageEntries] = useState([]); const [sessionStorageEntries, setSessionStorageEntries] = useState([]); const refreshEntries = useCallback(() => { setLocalStorageEntries(getLocalStorageEntries()); setSessionStorageEntries(getSessionStorageEntries()); }, []); // Load entries on mount useEffect(() => { refreshEntries(); }, [refreshEntries]); const clearStorage = useCallback( (type: 'localStorage' | 'sessionStorage', key?: string) => { clearStorageUtil(type, key); refreshEntries(); }, [refreshEntries] ); return { localStorageEntries, sessionStorageEntries, clearStorage, refreshEntries, }; }