Spaces:
Paused
Paused
| import { useState } from "react"; | |
| interface ParsedDataSummaryProps { | |
| parsedData: Record<string, unknown>; | |
| } | |
| export function ParsedDataSummary({ parsedData }: ParsedDataSummaryProps) { | |
| const [expanded, setExpanded] = useState(false); | |
| const questions = parsedData.questions as { questions?: unknown[] } | undefined; | |
| const students = parsedData.student_answers as { students?: unknown[] } | undefined; | |
| const answers = parsedData.teacher_answers as { answers?: unknown[] } | undefined; | |
| const qCount = questions?.questions?.length ?? 0; | |
| const sCount = students?.students?.length ?? 0; | |
| const aCount = answers?.answers?.length ?? 0; | |
| return ( | |
| <div className="card p-4"> | |
| <button | |
| onClick={() => setExpanded(!expanded)} | |
| className="w-full flex items-center justify-between text-left" | |
| > | |
| <div className="flex items-center gap-4"> | |
| <h3 className="font-display text-sm font-semibold text-[var(--color-text)]"> | |
| ε·²θ§£ζθ³ζ | |
| </h3> | |
| <div className="flex gap-3 text-xs"> | |
| {qCount > 0 && <span className="badge badge-success">π {qCount} ι‘</span>} | |
| {sCount > 0 && <span className="badge badge-success">π¨βπ {sCount} δ½εΈη</span>} | |
| {aCount > 0 && <span className="badge badge-success">β {aCount} ηζ‘</span>} | |
| </div> | |
| </div> | |
| <span className="text-[var(--color-text-muted)] text-lg"> | |
| {expanded ? "β²" : "βΌ"} | |
| </span> | |
| </button> | |
| {expanded && ( | |
| <div className="mt-4 pt-4 border-t border-[var(--color-border)] text-sm max-h-64 overflow-y-auto"> | |
| <pre className="text-[var(--color-text-muted)] whitespace-pre-wrap break-words"> | |
| {JSON.stringify(parsedData, null, 2)} | |
| </pre> | |
| </div> | |
| )} | |
| </div> | |
| ); | |
| } | |