"use client"; import { useEffect, useState } from "react"; import { Button, ProgressBar, Spinner } from "@/components/ui"; import type { HomeworkProgress } from "@/lib/client-api"; import { useI18n } from "@/lib/i18n"; import type { HomeworkMode } from "@/lib/schemas"; /** Staged loading state while the assignment is read and answered. */ export function HomeworkLoading({ progress, mode, onCancel, }: { progress: HomeworkProgress; mode: HomeworkMode; onCancel: () => void; }) { const { t } = useI18n(); const vision = progress.stage === "vision"; const keys = vision ? ["homework.loading.reading", "homework.loading.vision2"] : mode === "make" ? ["homework.loading.writing", "homework.loading.gen2", "homework.loading.gen3"] : ["homework.loading.planning", "homework.loading.gen2", "homework.loading.gen3"]; const [tick, setTick] = useState(0); useEffect(() => { const id = window.setInterval(() => setTick((value) => value + 1), 2400); return () => window.clearInterval(id); }, []); const message = progress.message && tick === 0 ? progress.message : t(keys[tick % keys.length]); return (
{message}