"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { MessageCircle } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; export function MessagesNavLink() { const [unreadTotal, setUnreadTotal] = useState(0); useEffect(() => { let cancelled = false; async function load() { try { const res = await fetch("/api/v1/conversations"); if (!res.ok || cancelled) return; const data = (await res.json()) as { conversations: { unreadCount: number }[] }; setUnreadTotal(data.conversations.reduce((sum, c) => sum + c.unreadCount, 0)); } catch { // silent } } void load(); const interval = setInterval(load, 30_000); return () => { cancelled = true; clearInterval(interval); }; }, []); return ( ); }