"use client"; import "../app/globals.css"; import { Loader2, CheckCircle, XCircle, GitBranch, MessageSquare, FileText, } from "lucide-react"; import { useState } from "react"; type Step = { name: string; status: "waiting" | "generating" | "success" | "error"; error?: string; }; type InitializeStepProps = { status: "loading" | "generating" | "done"; success?: boolean; steps?: Step[]; reasoningText?: string; summaryText?: string; }; export function InitializeStep({ status, success, steps, reasoningText, summaryText, }: InitializeStepProps) { const [showReasoning, setShowReasoning] = useState(false); const [showSummary, setShowSummary] = useState(false); const stepStatusIcon = { waiting: (
), generating: , success: , error: , }; const getStatusIcon = () => { switch (status) { case "loading": return (
); case "generating": return ; case "done": return success ? ( ) : ( ); } }; const getStatusText = () => { switch (status) { case "loading": return "Preparing environment..."; case "generating": return "Initializing environment..."; case "done": return success ? "Environment ready" : "Initialization failed"; } }; return (
{reasoningText && (
{showReasoning && (

{reasoningText}

)}
)}
{getStatusText()} {getStatusIcon()}
{steps && (status === "generating" || status === "done") && (
    {steps.map((step, index) => (
  • {stepStatusIcon[step.status]} {step.name} {step.error && ( ({step.error}) )}
  • ))}
)} {summaryText && status === "done" && (
{showSummary && (

{summaryText}

)}
)}
); }