'use client'; import React, { useState, useEffect } from 'react'; import { Badge } from '@/components/ui/badge'; import { CheckCircle, AlertCircle, RefreshCw, Zap } from 'lucide-react'; import quantumWeaverAPI from '@/lib/api-client'; import { SafeTimestamp } from './ClientTimeStampProvider'; interface BackendStatusIndicatorProps { className?: string; } export default function BackendStatusIndicator({ className }: BackendStatusIndicatorProps) { const [status, setStatus] = useState<'checking' | 'online' | 'offline'>('checking'); const [lastCheck, setLastCheck] = useState(new Date()); const checkBackendStatus = async () => { try { setStatus('checking'); const health = await quantumWeaverAPI.healthCheck(); setStatus(health.status === 'healthy' ? 'online' : 'offline'); setLastCheck(new Date()); } catch (error) { setStatus('offline'); setLastCheck(new Date()); } }; useEffect(() => { // Initial check checkBackendStatus(); // Check every 30 seconds const interval = setInterval(checkBackendStatus, 30000); return () => clearInterval(interval); }, []); const getStatusBadge = () => { switch (status) { case 'online': return ( Backend Online ); case 'offline': return ( Backend Offline ); case 'checking': return ( Checking... ); } }; return (
{getStatusBadge()} Last:
); }