import { useState, useEffect } from 'react'; interface Props { name: string; } export default function ProcessingStatus({ name }: Props) { const [stage, setStage] = useState(''); useEffect(() => { let active = true; const poll = async () => { try { const res = await fetch(`/api/progress/${encodeURIComponent(name)}`); if (res.ok && active) { const data = await res.json(); if (data.stage) setStage(data.stage); } } catch { /* ignore */ } }; const id = setInterval(poll, 800); poll(); // immediate first check return () => { active = false; clearInterval(id); }; }, [name]); return (
Processing {name}
{stage || 'Starting pipeline...'}
); }