"use client"; import { MessageCircle } from "lucide-react"; import { useEffect, useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { useSession } from "@/lib/hooks/use-session"; import { MessagesPanel } from "./MessagesPanel"; interface MessagesBellProps { className?: string; } export function MessagesBell({ className }: MessagesBellProps) { const { user } = useSession(); const [unreadUsersCount, setUnreadUsersCount] = useState(0); const [isOpen, setIsOpen] = useState(false); // Buscar contagem de usuários únicos com mensagens não vistas const fetchUnreadCount = async () => { if (!user) return; try { const res = await fetch("/api/chats/unread-count", { credentials: "include", }); if (res.ok) { const data = await res.json(); if (data.success) { setUnreadUsersCount(data.count); } } } catch (error) { console.error("[CHAT-DEBUG] Erro ao buscar contagem de chats:", error); } }; // Polling automático a cada 30 segundos useEffect(() => { if (!user) return; fetchUnreadCount(); const interval = setInterval(() => { fetchUnreadCount(); }, 30000); // 30 segundos return () => clearInterval(interval); }, [user, fetchUnreadCount]); // Atualizar contagem quando abrir/fechar useEffect(() => { if (isOpen) { fetchUnreadCount(); } }, [isOpen, fetchUnreadCount]); // Marcar como visto quando abrir const handleOpenChange = (open: boolean) => { setIsOpen(open); }; if (!user) { return null; } return ( <> ); }