import React, { useState, useEffect } from 'react';
import { systemInitializer } from '../../utils/systemInitializer.js';
import Card from './Card.js';
function SystemStatus({ compact = false }) {
const [systemStatus, setSystemStatus] = useState(null);
const [performanceMetrics, setPerformanceMetrics] = useState(null);
const [healthStatus, setHealthStatus] = useState(null);
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
const updateStatus = async () => {
try {
const status = systemInitializer.getSystemStatus();
const metrics = { totalAnalyses: 0, averageAccuracy: 85, averageProcessingTime: 1200 };
const health = await systemInitializer.performHealthCheck();
setSystemStatus(status);
setPerformanceMetrics(metrics);
setHealthStatus(health);
setIsLoading(false);
} catch (error) {
console.error('Failed to get system status:', error);
setIsLoading(false);
}
};
updateStatus();
// Update every 30 seconds
const interval = setInterval(updateStatus, 30000);
return () => clearInterval(interval);
}, []);
if (isLoading) {
return (
🔄 System Status
Loading...
);
}
if (compact) {
return (
{systemStatus?.overallReady ? 'All Systems Operational' : 'Limited Functionality'}
{performanceMetrics && (
Analyses: {performanceMetrics.totalAnalyses}
Avg Accuracy: {Math.round(performanceMetrics.averageAccuracy)}%
)}
);
}
return (
🚀 GreenPlus by GXS Advanced Systems
{systemStatus?.overallReady ? '✅ Operational' : '⚠️ Degraded'}
Ultimate System
{systemStatus?.ultimateSystem ? '🟢 Active' : '🔴 Inactive'}
Production System
{systemStatus?.productionSystem ? '🟢 Active' : '🔴 Inactive'}
ML Engine
{systemStatus?.mlEngine ? '🟢 Active' : '🔴 Inactive'}
WebGL Engine
{systemStatus?.webglEngine ? '🟢 Active' : '🔴 Inactive'}
Accuracy Validator
{systemStatus?.validator ? '🟢 Active' : '🔴 Inactive'}
{performanceMetrics && (
📊 Performance Metrics
Total Analyses
{performanceMetrics.totalAnalyses.toLocaleString()}
Average Accuracy
{Math.round(performanceMetrics.averageAccuracy)}%
Avg Processing Time
{Math.round(performanceMetrics.averageProcessingTime)}ms
System Uptime
{Math.round(performanceMetrics.systemUptime / 1000)}s
)}
{healthStatus && (
🏥 System Health
Overall: {healthStatus.overall.toUpperCase()}
{Object.entries(healthStatus.systems).map(([system, status]) => (
{system}
{status}
))}
)}
);
}
export default SystemStatus;