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"}
);
}
return (
{/* Header */}
{config?.name || "Configuration"}
top-{config?.top_k}
threshold {Number(config?.threshold ?? 0).toFixed(2)}
{/* 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 }) => (
))}
{/* Retrieved chunks toggle */}
{showChunks && chunks && chunks.length > 0 && (
{chunks.map((c, i) => (
#{i + 1} · score {Number(scores?.[i] ?? 0).toFixed(4)}
{c}
))}
)}
);
}