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;