"use client"; import { useState } from "react"; import { Star } from "lucide-react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; export function CollectionStarButton({ collectionId, initialStarred = false, starCount, }: { collectionId: string; initialStarred?: boolean; starCount: number; }) { const [starred, setStarred] = useState(initialStarred); const [count, setCount] = useState(starCount); const [loading, setLoading] = useState(false); async function toggle(e: React.MouseEvent) { e.preventDefault(); e.stopPropagation(); setLoading(true); try { const res = await fetch(`/api/v1/collections/${collectionId}/favorite`, { method: starred ? "DELETE" : "POST", }); if (!res.ok) return; setStarred(!starred); setCount((c) => (starred ? c - 1 : c + 1)); } finally { setLoading(false); } } return ( ); }