import React from 'react'; import { useState } from "react"; import { Badge } from "../common/index"; export default function ConfigCard({ result }) { const [showChunks, setShowChunks] = useState(false); const { config, answer, chunks, scores, error, latency_ms, avg_similarity, chunk_count } = result; const responseTimeMs = Number.isFinite(Number(latency_ms)) ? Math.round(Number(latency_ms)) : 0; // Handle error case if (error) { return (

{config?.name || "Configuration"}

Error

{error}

); } return (
{/* Header */}

{config?.name || "Configuration"}

top-{config?.top_k} threshold {Number(config?.threshold ?? 0).toFixed(2)}
{/* Answer */}

Answer

{answer}

{/* Metrics */}
{[ { label: "Time", value: `${responseTimeMs}ms` }, { label: "Chunks", value: chunk_count ?? 0 }, { label: "Similarity", value: Number(avg_similarity ?? 0).toFixed(4) }, { label: "Scores", value: scores?.length ?? 0 }, ].map(({ label, value }) => (

{label}

{value}

))}
{/* Retrieved chunks toggle */}
{showChunks && chunks && chunks.length > 0 && (
{chunks.map((c, i) => (

#{i + 1} · score {Number(scores?.[i] ?? 0).toFixed(4)}

{c}

))}
)}
); }