From fbe441c654ae87af1fa50b84c7474882d217b0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D0=B9=20=D0=9B=D0=B0?= =?UTF-8?q?=D0=B2=D1=88=D0=BE=D0=BD=D0=BE=D0=BA?= <114582703+valavshonok@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:39:30 +0300 Subject: [PATCH] pooling content fix --- src/pages/Mission.tsx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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]);