"use client"; import React, { useState, useEffect } from 'react'; import { Heart, Loader2, Search, MapPin, Star, ExternalLink } from 'lucide-react'; import Link from 'next/link'; import { useUser } from '../UserProvider'; import { toast } from 'react-hot-toast'; interface Favorite { id: string; business: { id: string; name: string; category: string; location: string; description: string; logoUrl: string; slug: string | null; rating: number; viewCount: number; } } const DashboardFavorites = () => { const { user } = useUser(); const [favorites, setFavorites] = useState([]); const [loading, setLoading] = useState(true); const [searchTerm, setSearchTerm] = useState(''); useEffect(() => { if (user) { fetchFavorites(); } }, [user]); const fetchFavorites = async () => { try { const res = await fetch('/api/favorites', { headers: { 'x-user-id': user?.id || '' } }); const data = await res.json(); if (!data.error) { setFavorites(data); } } catch (error) { console.error('Error fetching favorites:', error); } finally { setLoading(false); } }; const handleRemoveFavorite = async (e: React.MouseEvent, businessId: string) => { e.preventDefault(); e.stopPropagation(); try { const res = await fetch('/api/favorites', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-user-id': user?.id || '' }, body: JSON.stringify({ businessId }) }); const data = await res.json(); if (!data.error) { setFavorites(favorites.filter(f => f.business.id !== businessId)); toast.success('Retiré des favoris'); } } catch (error) { toast.error('Erreur lors de la suppression'); } }; const filteredFavorites = favorites.filter(f => f.business.name.toLowerCase().includes(searchTerm.toLowerCase()) || f.business.category.toLowerCase().includes(searchTerm.toLowerCase()) ); if (loading) { return (
); } return (

Mes Favoris

setSearchTerm(e.target.value)} className="pl-10 pr-4 py-2 bg-white border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-brand-500 outline-none w-full sm:w-64" />
{filteredFavorites.length === 0 ? (

Aucun favori

Vous n'avez pas encore ajouté d'entrepreneur à vos favoris. Parcourez l'annuaire pour découvrir des pépites !

Explorer l'annuaire
) : (
{filteredFavorites.map((fav) => (
{fav.business.name}

{fav.business.name}

{fav.business.category}

{fav.business.location}
{fav.business.rating}
Voir la fiche
))}
)}
); }; export default DashboardFavorites;