diff --git a/src/pages/Mission.tsx b/src/pages/Mission.tsx index 01814da..aec338d 100644 --- a/src/pages/Mission.tsx +++ b/src/pages/Mission.tsx @@ -27,6 +27,31 @@ const Mission = () => { const pollingRef = useRef(null); const submissions = useAppSelector((state) => state.submin.submitsById[missionIdNumber] || []); + + + + const startPolling = () => { + if (pollingRef.current) + return; + + pollingRef.current = setInterval(async () => { + dispatch(fetchMySubmitsByMission(missionIdNumber)); + + const hasWaiting = submissions.some( + (s: any) => s.solution.status == "Waiting" || s.solution.testerState === "Waiting" + ); + if (!hasWaiting) { + // Всё проверено — стоп + if (pollingRef.current) { + clearInterval(pollingRef.current); + pollingRef.current = null; + } + } + }, 5000); // 10 секунд + }; + + + useEffect(() => { dispatch(fetchMissionById(missionIdNumber)); dispatch(fetchMySubmitsByMission(missionIdNumber)); @@ -59,8 +84,6 @@ const Mission = () => { return
Загрузка...
; } - - interface StatementData { id: number; legend?: string; @@ -116,28 +139,6 @@ const Mission = () => { - const startPolling = () => { - if (pollingRef.current) - return; - - pollingRef.current = setInterval(async () => { - dispatch(fetchMySubmitsByMission(missionIdNumber)); - - const hasWaiting = submissions.some( - (s: any) => s.solution.status == "Waiting" || s.solution.testerState === "Waiting" - ); - if (!hasWaiting) { - // Всё проверено — стоп - if (pollingRef.current) { - clearInterval(pollingRef.current); - pollingRef.current = null; - } - } - }, 5000); // 10 секунд - }; - - - return (