"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { toast } from "sonner"; import { MessageCircle } from "lucide-react"; import { Button } from "@/components/ui/button"; export function MessageButton({ targetUsername }: { targetUsername: string }) { const router = useRouter(); const [loading, setLoading] = useState(false); async function startConversation() { setLoading(true); try { const res = await fetch("/api/v1/conversations", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ username: targetUsername }), }); if (!res.ok) { const err = await res.json() as { error?: string }; toast.error(err.error ?? "Failed to start conversation"); return; } const { conversationId } = await res.json() as { conversationId: string }; router.push(`/messages/${conversationId}`); } finally { setLoading(false); } } return ( ); }