import { type ReactNode } from 'react'; import { useQuery } from '@tanstack/react-query'; import { apiRequest } from '../../lib/api-client'; import { healthSchema, type Health } from '../../lib/schemas'; import { Card, CardBody, CardHeader } from '../../components/ui/card'; import { Badge } from '../../components/ui/badge'; import { ErrorState, Spinner } from '../../components/ui/states'; /** Admin-Seite: detaillierter Systemstatus der Plattform. */ export function SystemStatusPage(): ReactNode { const healthQuery = useQuery({ queryKey: ['health'], queryFn: async (): Promise => healthSchema.parse(await apiRequest('/api/v1/health')), refetchInterval: 30_000, }); return (

Systemstatus

Zustand aller Plattform-Komponenten (aktualisiert alle 30 Sekunden).

{healthQuery.isLoading && } {healthQuery.isError && ( )} {healthQuery.data && (
Plattform-Version {healthQuery.data.version}
Uptime {Math.floor(healthQuery.data.uptimeSeconds / 60)} Minuten
)}
); } /** Zeile im Systemstatus. */ function StatusRow({ label, status, variant, }: { label: string; status: string; variant: 'success' | 'danger'; }): ReactNode { return (
{label} {status}
); }