"use client"; import { useState, useTransition } from "react"; import { Star } from "lucide-react"; import { Button } from "@/components/ui/button"; import { toggleStar } from "@/actions/repositories"; import { cn } from "@/lib/utils"; export function StarButton({ repoId, initialStarred, initialCount, }: { repoId: string; initialStarred: boolean; initialCount: number; }) { const [starred, setStarred] = useState(initialStarred); const [count, setCount] = useState(initialCount); const [isPending, startTransition] = useTransition(); function handleClick() { startTransition(async () => { try { const result = await toggleStar(repoId); setStarred(result.starred); setCount((c) => (result.starred ? c + 1 : c - 1)); } catch {} }); } return ( ); }