'use client'; import { createContext, useContext, useState, useEffect } from 'react'; const FavoritesContext = createContext(); export const useFavorites = () => { const context = useContext(FavoritesContext); if (!context) { throw new Error('useFavorites must be used within FavoritesProvider'); } return context; }; export const FavoritesProvider = ({ children }) => { const [favorites, setFavorites] = useState([]); useEffect(() => { const stored = localStorage.getItem('favorites'); if (stored) { try { setFavorites(JSON.parse(stored)); } catch (e) { console.error('Failed to parse favorites', e); } } }, []); useEffect(() => { localStorage.setItem('favorites', JSON.stringify(favorites)); }, [favorites]); const addFavorite = (property) => { setFavorites(prev => { if (prev.some(p => p.id === property.id)) return prev; return [...prev, property]; }); }; const removeFavorite = (propertyId) => { setFavorites(prev => prev.filter(p => p.id !== propertyId)); }; const isFavorite = (propertyId) => { return favorites.some(p => p.id === propertyId); }; return ( {children} ); };