diff --git a/src/pages/Mission.tsx b/src/pages/Mission.tsx index aec338d..9b46f48 100644 --- a/src/pages/Mission.tsx +++ b/src/pages/Mission.tsx @@ -26,6 +26,8 @@ const Mission = () => { const pollingRef = useRef(null); const submissions = useAppSelector((state) => state.submin.submitsById[missionIdNumber] || []); + const submissionsRef = useRef(submissions); + @@ -37,7 +39,7 @@ const Mission = () => { pollingRef.current = setInterval(async () => { dispatch(fetchMySubmitsByMission(missionIdNumber)); - const hasWaiting = submissions.some( + const hasWaiting = submissionsRef.current.some( (s: any) => s.solution.status == "Waiting" || s.solution.testerState === "Waiting" ); if (!hasWaiting) { @@ -57,6 +59,9 @@ const Mission = () => { dispatch(fetchMySubmitsByMission(missionIdNumber)); }, [missionIdNumber]); + useEffect(() => { + }, [submissions]); + useEffect(() => { return () => { if (pollingRef.current) { @@ -68,14 +73,16 @@ const Mission = () => { useEffect(() => { - if (submissions.length === 0) return; + submissionsRef.current = submissions; - const hasWaiting = submissions.some( - s => s.solution.status === "Waiting" || s.solution.testerState === "Waiting" - ); + if (submissions.length) { + const hasWaiting = submissions.some( + s => s.solution.status === "Waiting" || s.solution.testerState === "Waiting" + ); - if (hasWaiting) { - startPolling(); + if (hasWaiting) { + startPolling(); + } } }, [submissions]);