import { useState, useEffect } from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider } from './contexts/AuthContext'; import { SocketProvider } from './contexts/SocketContext'; import { ToastProvider } from './contexts/ToastContext'; import { ProtectedRoute, AdminRoute } from './components/ProtectedRoute'; import LoginPage from './pages/LoginPage'; import InstallPage from './pages/InstallPage'; import DashboardPage from './pages/DashboardPage'; import ClientsPage from './pages/ClientsPage'; import AdminClinicsPage from './pages/AdminClinicsPage'; import ResetPage from './pages/ResetPage'; import DownloadPage from './pages/DownloadPage'; import PatientsPage from './pages/PatientsPage'; import CreatePatientPage from './pages/CreatePatientPage'; import PatientDetailsPage from './pages/PatientDetailsPage'; import SettingsPage from './pages/SettingsPage'; import GtosPage from './pages/GtosPage'; import CreateGtoPage from './pages/CreateGtoPage'; import GtoDetailsPage from './pages/GtoDetailsPage'; import ImageDetailsPage from './pages/ImageDetailsPage'; import UsersPage from './pages/UsersPage'; import SyncPage from './pages/SyncPage'; import ApiDocsPage from './pages/ApiDocsPage'; // Versão fixa no canto inferior direito (padrão da stack — lê /api/health; não bloqueia cliques). function VersionBadge() { const [ver, setVer] = useState(''); useEffect(() => { fetch('/api/health').then(r => (r.ok ? r.json() : null)) .then(v => { if (v && v.version) setVer(v.version); }).catch(() => {}); }, []); if (!ver) return null; return (