function Spinner({ config }) { const ref = React.useRef(null); React.useEffect(() => { const spinner = new Spin.Spinner({ lines: 13, color: "#ffffff", ...config, }); spinner.spin(ref.current); return () => spinner.stop(); }, [ref]); return ; } function Result({ callId, selectedFile }) { const [result, setResult] = React.useState(); const [intervalId, setIntervalId] = React.useState(); React.useEffect(() => { if (result) { clearInterval(intervalId); return; } const _intervalID = setInterval(async () => { const resp = await fetch(`/result/${callId}`); if (resp.status === 200) { setResult(await resp.json()); } }, 100); setIntervalId(_intervalID); return () => clearInterval(intervalId); }, [result]); return (
{JSON.stringify(result, undefined, 1)}
)}