Skip to content

Commit 550c6b1

Browse files
committed
fix(susun): infinite refetch fixed
1 parent d335a98 commit 550c6b1

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

src/containers/BuildSchedule/index.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ function BuildSchedule() {
9999
}
100100
} catch (e) {
101101
console.error("Error fetching courses:", e);
102+
// If there's an error (e.g., major not found), we should still mark the fetch as done to avoid refetching
103+
fetchedMajorId.current = majorId;
104+
fetchedMajorSelected.current = majorSelected;
105+
hasInitialData.current = true;
106+
coursesLoaded.current = true;
107+
setCourses(null);
108+
setCoursesDetail(null);
102109
}
103110

104111
setTimeout(() => dispatch(setLoading(false)), 1000);
@@ -123,12 +130,17 @@ function BuildSchedule() {
123130
fetchCourses(majorId, majorSelected, false);
124131
}
125132
}
126-
}, [auth.majorId, fetchCourses, restoreSchedulesFromSessionStorage]);
133+
}, [
134+
auth.majorId,
135+
fetchCourses,
136+
restoreSchedulesFromSessionStorage,
137+
majorSelected,
138+
]);
127139

128140
useEffect(() => {
129141
if (
130142
hasInitialData.current &&
131-
majorSelected !== fetchedMajorSelected.current
143+
majorSelected?.kd_org !== fetchedMajorSelected.current
132144
) {
133145
document.getElementById("input")?.value &&
134146
(document.getElementById("input").value = "");

0 commit comments

Comments
 (0)