"use client"; import { Button } from "./ui/button"; import { useDiagnosisRunner } from "@/hooks/use-diagnosis"; import { CheckKey, DiagnosisResult, DiagnosisResultType } from "./diagnosis-result"; import { checks } from "@/components/diagnosis-result"; import { useEffect, useRef, useState } from "react"; import { Agent } from "@/types/agent"; interface AgentVrmDiagnosisProps { agent: Agent index: number; setDiagnosisIsPassed: (isPassed: boolean) => void; } export function AgentVrmDiagnosis({ agent, index, setDiagnosisIsPassed, }: AgentVrmDiagnosisProps) { const hasChecked = useRef(false); const { results, checking, handleDiagnosis } = useDiagnosisRunner(agent, index); // Check agent status on mount useEffect(() => { if (!hasChecked.current) { handleDiagnosis(); hasChecked.current = true; } }, []); // Set diagnosis is passed flag useEffect(() => { const isPassed = ( Object.keys(results) as (keyof DiagnosisResultType)[] ) .filter((key): key is CheckKey => key !== "overall") .every((key) => results[key].status === "pass"); setDiagnosisIsPassed(isPassed); }, [results]); return (