// src/App.jsx import { useEffect, useRef } from 'react'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { AuthProvider } from './context/AuthContext'; import { ThemeProvider } from './context/ThemeContext'; import { useAuthContext } from './context/AuthContext'; import { useUnread } from './context/UnreadContext'; import { useUnreadSocket } from './hooks/useUnreadSocket'; import LandingPage from './pages/NakhodkaLanding'; import MainFeed from './pages/MainFeed'; import ChatPage from './pages/ChatPage'; import ChatListPage from './pages/ChatListPage'; import ReviewsPage from './pages/ReviewsPage'; import './styles/chat.css'; function UnreadListener() { const { user } = useAuthContext(); const { resetUnread } = useUnread(); const prevUserIdRef = useRef(user?.id); // Сбрасываем накопленный unreadMap при смене пользователя (логин под другим // аккаунтом или логаут → user становится null) — иначе счётчики непрочитанных // от предыдущей сессии останутся висеть в бейдже до первого WS-обновления. useEffect(() => { if (prevUserIdRef.current !== user?.id) { resetUnread(); prevUserIdRef.current = user?.id; } }, [user?.id, resetUnread]); useUnreadSocket(user?.id); return null; } function App() { return ( } /> } /> } /> } /> } /> } /> ); } export default App;