pooling content fix

This commit is contained in:
Виталий Лавшонок
2025-11-03 10:39:30 +03:00
parent a5c7cc9db3
commit fbe441c654

View File

@@ -26,6 +26,8 @@ const Mission = () => {
const pollingRef = useRef<number | null>(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]);