import React, { Component, ReactNode } from "react"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import { AuthProvider, useAuth } from "@/context/AuthContext"; import { LoginScreen } from "@/components/LoginScreen"; import BoardPage from "./pages/BoardPage"; import { Toaster } from "@/components/ui/sonner"; // ─── Error Boundary ────────────────────────────────────────────────────────── interface EBProps { children: ReactNode; } interface EBState { hasError: boolean; } class ErrorBoundary extends Component { constructor(props: EBProps) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError() { return { hasError: true }; } componentDidCatch(error: Error, info: React.ErrorInfo) { console.error("Uncaught error:", error, info); } render() { if (this.state.hasError) { return (

Ocurrió un error al cargar el tablero.

Intenta recargar la página.

); } return this.props.children; } } // ─── Auth Gate ─────────────────────────────────────────────────────────────── function AuthGate() { const { user, loading } = useAuth(); if (loading) { return (

Cargando tablero…

); } if (!user) { return ; } return ( } /> ); } // ─── App ───────────────────────────────────────────────────────────────────── export function App() { return ( ); }