pooling content fix
This commit is contained in:
@@ -26,6 +26,8 @@ const Mission = () => {
|
|||||||
|
|
||||||
const pollingRef = useRef<number | null>(null);
|
const pollingRef = useRef<number | null>(null);
|
||||||
const submissions = useAppSelector((state) => state.submin.submitsById[missionIdNumber] || []);
|
const submissions = useAppSelector((state) => state.submin.submitsById[missionIdNumber] || []);
|
||||||
|
const submissionsRef = useRef(submissions);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -37,7 +39,7 @@ const Mission = () => {
|
|||||||
pollingRef.current = setInterval(async () => {
|
pollingRef.current = setInterval(async () => {
|
||||||
dispatch(fetchMySubmitsByMission(missionIdNumber));
|
dispatch(fetchMySubmitsByMission(missionIdNumber));
|
||||||
|
|
||||||
const hasWaiting = submissions.some(
|
const hasWaiting = submissionsRef.current.some(
|
||||||
(s: any) => s.solution.status == "Waiting" || s.solution.testerState === "Waiting"
|
(s: any) => s.solution.status == "Waiting" || s.solution.testerState === "Waiting"
|
||||||
);
|
);
|
||||||
if (!hasWaiting) {
|
if (!hasWaiting) {
|
||||||
@@ -57,6 +59,9 @@ const Mission = () => {
|
|||||||
dispatch(fetchMySubmitsByMission(missionIdNumber));
|
dispatch(fetchMySubmitsByMission(missionIdNumber));
|
||||||
}, [missionIdNumber]);
|
}, [missionIdNumber]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
}, [submissions]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
if (pollingRef.current) {
|
if (pollingRef.current) {
|
||||||
@@ -68,8 +73,9 @@ const Mission = () => {
|
|||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (submissions.length === 0) return;
|
submissionsRef.current = submissions;
|
||||||
|
|
||||||
|
if (submissions.length) {
|
||||||
const hasWaiting = submissions.some(
|
const hasWaiting = submissions.some(
|
||||||
s => s.solution.status === "Waiting" || s.solution.testerState === "Waiting"
|
s => s.solution.status === "Waiting" || s.solution.testerState === "Waiting"
|
||||||
);
|
);
|
||||||
@@ -77,6 +83,7 @@ const Mission = () => {
|
|||||||
if (hasWaiting) {
|
if (hasWaiting) {
|
||||||
startPolling();
|
startPolling();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}, [submissions]);
|
}, [submissions]);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user