"use client"; import { IconAlertTriangle, IconLoader2 } from "@tabler/icons-react"; import type { PrepareSummary } from "@/lib/prepare/summarize"; import { useTranslation } from "react-i18next"; export function PrepareStatusSection({ summary }: { summary: PrepareSummary }) { if (summary.phase === "idle" || summary.phase === "ready") return null; if (summary.phase === "resuming") return ; if (summary.phase === "preparing" || summary.phase === "preparing_fallback") { return ; } if (summary.phase === "failed") return ; return null; } function ResumingRow() { const { t } = useTranslation(); return (
{t("task:resumingSession")}
{t("task:reconnectingToTheExistingEnvironment")}
); } function PreparingRow({ summary }: { summary: PrepareSummary }) { const { t } = useTranslation(); const stepLabel = summary.current?.name ?? "Preparing..."; const stepNumber = Math.min(summary.currentIndex + 1, summary.totalSteps); return (
{t("task:preparingEnvironment")}
{summary.totalSteps > 0 ? t("task:stepOf", { stepNumber, totalSteps: summary.totalSteps, stepLabel }) : stepLabel}
{summary.phase === "preparing_fallback" && summary.fallbackWarning && (
{summary.fallbackWarning}
)}
); } function FailedRow({ summary }: { summary: PrepareSummary }) { const { t } = useTranslation(); return (
{t("task:environmentPreparationFailed")}
{summary.failedStep && (
{t("task:failedAtStep", { step: summary.failedStep.name })}
)} {summary.failedStep?.error && (
          {summary.failedStep.error}
        
)}
); }