feat: indicateurs de statut et configuration des endpoints SubSquid/Cesium+
ci/woodpecker/push/woodpecker Pipeline was successful

- Dots de statut en temps réel dans le StatsPanel (ok/slow/error + latence)
- Bannière d'alerte si un service est inaccessible
- EndpointPopover : sélection parmi nœuds connus, test de latence live, URL custom
- Rechargement automatique des données après changement d'endpoint
- SubsquidAdapter et CesiumAdapter lisent l'URL active depuis EndpointConfig
- InfoPanel mis à jour (overlay DU + statut des services)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-04-21 20:43:33 +02:00
parent 7c9d626b98
commit 0d9415ae6a
9 changed files with 448 additions and 10 deletions
+3 -1
View File
@@ -34,6 +34,7 @@ export default function App() {
const [showMembers, setShowMembers] = useState(false);
const [memberCities, setMemberCities] = useState<MemberCity[]>([]);
const [membersLoading, setMembersLoading] = useState(false);
const [endpointVersion, setEndpointVersion] = useState(0);
const isMobile = useMediaQuery('(max-width: 639px)');
const toggleMembers = async () => {
@@ -119,7 +120,7 @@ export default function App() {
const interval = setInterval(() => load(false), 30_000);
return () => { cancelled = true; clearInterval(interval); };
}, [periodDays]);
}, [periodDays, endpointVersion]);
// Stats heatmap sur la fenêtre courante en mode animation
const visibleStats: PeriodStats | null = animation.active
@@ -150,6 +151,7 @@ export default function App() {
flowStats,
focusCity,
allTimestamps,
onEndpointChange: () => setEndpointVersion((v) => v + 1),
};
return (