/**
* Results display component - shows simulation results, analytical results, and comparison.
*/
import { useSimulationStore } from '../../store/simulationStore';
import MetricsCard from './MetricsCard';
import ComparisonTable from './ComparisonTable';
export default function ResultsDisplay() {
const {
simulationResults,
analyticalResults,
comparisonResults,
isLoading,
} = useSimulationStore();
if (isLoading) {
return (
{/* Stability indicator */}
{(simulationResults || analyticalResults) && (
{(simulationResults?.is_stable ?? analyticalResults?.is_stable)
? 'Système stable'
: 'Système instable'}
{!simulationResults?.is_stable && simulationResults?.stability_notes && (
{simulationResults.stability_notes}
)}
{!analyticalResults?.is_stable && analyticalResults?.instability_reason && (
{analyticalResults.instability_reason}
)}
)}
{/* Simulation results */}
{simulationResults && (
Résultats de simulation
{/* Coordinator stats */}
{/* Server stats */}
{Object.entries(simulationResults.server_stats).map(([serverId, stats]) => (
{serverId.replace('_', ' ').charAt(0).toUpperCase() +
serverId.replace('_', ' ').slice(1)}
))}
)}
{/* Analytical results */}
{analyticalResults && (
Résultats analytiques (Théorème de Jackson)
{/* Coordinator analytics */}
{/* Server analytics */}
{Object.entries(analyticalResults.servers).map(([serverId, analytics]) => (
{serverId.replace('_', ' ').charAt(0).toUpperCase() +
serverId.replace('_', ' ').slice(1)}
))}
)}
{/* Comparison table */}
{comparisonResults && (
Comparaison Analytique vs Simulation
)}
);
}