import { Toaster } from "@/components/ui/toaster"; import { Toaster as Sonner } from "@/components/ui/sonner"; import { TooltipProvider } from "@/components/ui/tooltip"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom"; import { ThemeProvider } from "next-themes"; import { AuthProvider, useAuth } from "@/components/auth/AuthProvider"; import { ProtectedRoute } from "@/components/auth/ProtectedRoute"; import { useSessionSecurity } from "@/hooks/useSessionSecurity"; import AdvancedChatAssistant from "@/components/chat/AdvancedChatAssistant"; import Index from "./pages/Index"; import BotAssistant from "./pages/BotAssistant"; import MinutaDigital from "./pages/MinutaDigital"; import TeEscuchamos from "./pages/TeEscuchamos"; import ReservarZona from "./pages/ReservarZona"; import Visitantes from "./pages/Visitantes"; import Encomiendas from "./pages/Encomiendas"; import Citofonia from "./pages/Citofonia"; import Anuncios from "./pages/Anuncios"; import Documentos from "./pages/Documentos"; import Configuracion from "./pages/Configuracion"; import Mantenimiento from "./pages/Mantenimiento"; import Mantenimientos from "./pages/Mantenimientos"; import GestionUsuarios from "./pages/GestionUsuarios"; import CalendarioEventos from "./pages/CalendarioEventos"; import HistorialComportamiento from "./pages/HistorialComportamiento"; import Chat from "./pages/Chat"; import Auth from "./pages/Auth"; import NotFound from "./pages/NotFound"; import Activities from "./pages/Activities"; import SwimmingClasses from "./pages/SwimmingClasses"; import ProtectedSwimmingRegistration from "./components/auth/ProtectedSwimmingRegistration"; import ProtectedSwimmingAdmin from "./components/auth/ProtectedSwimmingAdmin"; import ProtectedSwimmingStatus from "./components/auth/ProtectedSwimmingStatus"; import { MobileCSS } from "./components/layout/MobileCSS"; import { PanicButton } from "./components/security/PanicButton"; import { IncomingCallNotification } from "./components/resident/IncomingCallNotification"; import EmergencyPanel from "./pages/EmergencyPanel"; import GuardCallPanel from "./pages/GuardCallPanel"; import DashboardCoordinador from "./pages/DashboardCoordinador"; import GestionCoordinadores from "./pages/GestionCoordinadores"; import PoliticasPrivacidad from "./pages/PoliticasPrivacidad"; const queryClient = new QueryClient(); const AppContent = () => { // TEMPORALMENTE DESHABILITADO - Causaba loops infinitos // useSessionSecurity(); console.log("AppContent: Renderizando sin useSessionSecurity"); return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */} } /> ); }; // Componente que maneja cuándo mostrar el chat (DENTRO del BrowserRouter) const ConditionalChatAssistant = () => { const { user } = useAuth(); const location = useLocation(); // Rutas donde NO debe aparecer el chat (login, coordinator dashboard, y página dedicada del bot) const hideChatRoutes = ['/auth', '/dashboard-coordinador', '/asistente-bot']; const shouldShowChat = user && !hideChatRoutes.includes(location.pathname); return shouldShowChat ? : null; }; // Componente que maneja cuándo mostrar el botón de pánico const ConditionalPanicButton = () => { const { user } = useAuth(); const location = useLocation(); // Solo mostrar en rutas protegidas, excepto en auth y coordinator dashboard const hidePanicRoutes = ['/auth', '/dashboard-coordinador']; const shouldShowPanic = user && !hidePanicRoutes.includes(location.pathname); return shouldShowPanic ? : null; }; // Componente que maneja las notificaciones de llamadas entrantes const ConditionalIncomingCalls = () => { // Temporalmente deshabilitado para debug return null; // const { user, profile } = useAuth(); // const location = useLocation(); // // Solo mostrar para residentes autenticados, excepto en auth // const hideCallRoutes = ['/auth']; // const shouldShowCalls = user && profile?.role === 'residente' && !hideCallRoutes.includes(location.pathname); // return shouldShowCalls ? : null; }; const App = () => ( ); export default App;