"use client"; import { Loader2, CheckCircle, XCircle, GitBranch, ChevronDown, } from "lucide-react"; import { useState, useEffect, useRef } from "react"; import { cn } from "@/lib/utils"; import { Step } from "@open-swe/shared/open-swe/custom-node-events"; import { Button } from "../ui/button"; type InitializeStepProps = { status: "loading" | "generating" | "done"; success?: boolean; steps?: Step[]; collapse?: boolean; }; export function InitializeStep({ status, success, steps, collapse: collapseProp, }: InitializeStepProps) { const [collapsed, setCollapsed] = useState(collapseProp ?? false); const wasDone = useRef(false); // Auto-collapse when status is 'done' and success is true useEffect(() => { if (status === "done" && success && !collapsed && !wasDone.current) { setCollapsed(true); wasDone.current = true; } if (status !== "done") { wasDone.current = false; } }, [status, success, collapsed]); const stepStatusIcon = { waiting: (
), generating: