'use client'; import { useState, useEffect } from 'react'; const useLocalStorage = (key, initialValue) => { const [storedValue, setStoredValue] = useState(() => { try { if (typeof window !== 'undefined') { const item = window.localStorage.getItem(key); // Vérifier si l'item existe et n'est pas undefined return item !== null && item !== 'undefined' ? JSON.parse(item) : initialValue; } return initialValue; } catch (error) { console.error('Error reading from localStorage:', error); return initialValue; } }); useEffect(() => { try { // Vérifier si la valeur n'est pas undefined avant de la stocker if (typeof storedValue !== 'undefined') { window.localStorage.setItem(key, JSON.stringify(storedValue)); } else { window.localStorage.removeItem(key); } } catch (error) { console.error('Error writing to localStorage:', error); } }, [key, storedValue]); const setValue = (value) => { try { // Permettre à la valeur d'être une fonction const valueToStore = value instanceof Function ? value(storedValue) : value; setStoredValue(valueToStore); } catch (error) { console.error('Error updating localStorage value:', error); } }; return [storedValue, setValue]; }; export default useLocalStorage;