"use client"; import { motion, AnimatePresence } from "framer-motion"; import { Star, MapPin, ChevronDown, Trash2, Heart } from "lucide-react"; import Card from "@/components/Card"; import EmptyState from "@/components/EmptyState"; import RestaurantImage from "@/components/RestaurantImage"; import { RecordItemSkeleton } from "@/components/Skeleton"; import type { FavoriteRecord, Restaurant } from "@/types"; function firstImage(r: Restaurant): string { if (r.images?.length > 0) return r.images[0]; const legacy = (r as unknown as Record).image; return typeof legacy === "string" ? legacy : ""; } interface ProfileFavoritesCardProps { favorites: FavoriteRecord[]; loading: boolean; open: boolean; onToggle: () => void; onRemove: (id: string) => Promise; onEmpty: () => void; delay?: number; } export default function ProfileFavoritesCard({ favorites, loading, open, onToggle, onRemove, onEmpty, delay, }: ProfileFavoritesCardProps) { return ( {open && ( {loading ? (
) : favorites.length === 0 ? ( ) : (
{favorites.map((f) => { const r = f.restaurantData; return (
{firstImage(r) && ( )}

{r.name}

{r.rating} {r.price} {r.distance && ( {r.distance} )}
); })}
)}
)}
); }