import { Heart, LoaderCircle } from "lucide-react"; import { useEffect } from "react"; import { useI18n } from "../i18n"; import { useFavorites } from "./FavoritesProvider"; type FavoriteButtonProps = { resourceId: string; className?: string; size?: "sm" | "md"; }; export function FavoriteButton({ resourceId, className = "", size = "md", }: FavoriteButtonProps) { const { t } = useI18n(); const favorites = useFavorites(); const status = favorites.statusFor(resourceId); const pending = favorites.pendingIds.has(resourceId); const isFavorite = status === "favorited"; useEffect(() => { void favorites.ensureFavoriteIds([resourceId]).catch(() => undefined); }, [favorites, resourceId]); const dimension = size === "sm" ? "h-9 w-9" : "h-10 w-10"; return ( ); }