/** * 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 (

Calcul en cours...

); } if (!simulationResults && !analyticalResults) { return (

Aucun résultat disponible

Lancez une simulation pour voir les résultats

); } 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 */}

Coordinateur

{/* 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 */}

Coordinateur

{/* 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

)}
); }