import { AlertCircle, CheckCircle2 } from "lucide-react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "~/client/components/ui/collapsible"; import { formatDateTime } from "~/client/lib/datetime"; import { cn, safeJsonParse } from "~/client/lib/utils"; import { Card, CardTitle } from "~/client/components/ui/card"; type DoctorStep = { step: string; success: boolean; output: string | null; error: string | null; }; type DoctorResult = { success: boolean; steps: DoctorStep[]; completedAt: number; }; type Props = { result?: DoctorResult | null; repositoryStatus: string | null; }; export const DoctorReport = ({ result, repositoryStatus }: Props) => { return (
Doctor Report {result && ( {formatDateTime(result.completedAt)} )}
{result && (
{result.steps.map((step) => ( {step.step.replaceAll("_", " ")} {step.success ? ( ) : ( )}
{step.output && (
											{safeJsonParse(step.output) ? JSON.stringify(safeJsonParse(step.output), null, 2) : step.output}
										
)} {step.error && (
Error
												{step.error}
											
)} {!step.output && !step.error && (
No output recorded
)}
))}
)}

No doctor report available.

Doctor operation running...

); };