"use client"; import { useEffect, useState } from "react"; import { Link } from "@/i18n/navigation"; import { fetchConversations } from "@/app/lib/chat"; import { resolveAuthUser } from "@/app/lib/api-client"; export default function ChatNavLink() { const [unread, setUnread] = useState(0); const [visible, setVisible] = useState(false); useEffect(() => { let cancelled = false; const load = async () => { const session = await resolveAuthUser(); if (!session?.user?.id) { if (!cancelled) { setVisible(false); setUnread(0); } return; } try { const data = await fetchConversations(); if (!cancelled) { setVisible(true); setUnread(data.unread || 0); } } catch { if (!cancelled) setVisible(false); } }; load(); const timer = window.setInterval(load, 15000); const onAuth = () => load(); window.addEventListener("auth:updated", onAuth); return () => { cancelled = true; window.clearInterval(timer); window.removeEventListener("auth:updated", onAuth); }; }, []); if (!visible) return null; return ( {unread > 0 ? ( {unread > 9 ? "9+" : unread} ) : null} ); }