Skip to content

Commit 5c5e0af

Browse files
committed
Some more fixes
1 parent 8e5c632 commit 5c5e0af

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

course-matrix/frontend/src/api/restrictionsApiSlice.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export const restrictionsApiSlice = apiSlice.injectEndpoints({
1515
providesTags: ["Restrictions"],
1616
credentials: "include",
1717
}),
18+
keepUnusedDataFor: 0,
1819
}),
1920
createRestriction: builder.mutation({
2021
query: (data) => ({

course-matrix/frontend/src/pages/TimetableBuilder/TimetableBuilder.tsx

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import {
4646
import { useSearchParams } from "react-router-dom";
4747
import OfferingInfo from "./OfferingInfo";
4848
import { Checkbox } from "@/components/ui/checkbox";
49+
import { CourseModel } from "@/models/models";
4950

5051
type FormContextType = UseFormReturn<z.infer<typeof TimetableFormSchema>>;
5152
export const FormContext = createContext<FormContextType | null>(null);
@@ -134,6 +135,12 @@ const TimetableBuilder = () => {
134135
...filters,
135136
});
136137

138+
const { data: allCoursesData } = useGetCoursesQuery({
139+
limit: 10000,
140+
}) as {
141+
data: CourseModel[];
142+
};
143+
137144
const { data: offeringData } = useGetOfferingsQuery({}) as {
138145
data: Offering[];
139146
};
@@ -169,7 +176,7 @@ const TimetableBuilder = () => {
169176
timetableEventsData?.courseEvents &&
170177
!loadedCourses &&
171178
timetableEventsData?.courseEvents &&
172-
coursesData &&
179+
allCoursesData &&
173180
!loadedRestrictions &&
174181
restrictionsData
175182
) {
@@ -181,10 +188,10 @@ const TimetableBuilder = () => {
181188
form.setValue("offeringIds", existingOfferingIds);
182189
setLoadedOfferingIds(true);
183190

184-
const existingCourseIds = existingOfferingIds.map(
191+
const existingCourseIds = [...new Set(existingOfferingIds.map(
185192
(offeringId) => offeringIdToCourseIdMap[offeringId],
186-
);
187-
const existingCourses = coursesData.filter((course) =>
193+
))];
194+
const existingCourses = allCoursesData.filter((course: CourseModel) =>
188195
existingCourseIds.includes(course.id),
189196
);
190197
form.setValue("courses", existingCourses);
@@ -218,15 +225,7 @@ const TimetableBuilder = () => {
218225
form.setValue("restrictions", parsedRestrictions);
219226
setLoadedRestrictions(true);
220227
}
221-
}, [
222-
timetableEventsData,
223-
coursesData,
224-
restrictionsData,
225-
loadedCourses,
226-
loadedOfferingIds,
227-
loadedRestrictions,
228-
form,
229-
]);
228+
}, [timetableEventsData, coursesData, restrictionsData, loadedCourses, loadedOfferingIds, loadedRestrictions, form, allCoursesData, offeringIdToCourseIdMap]);
230229

231230
const { data: timetablesData } = useGetTimetablesQuery() as {
232231
data: Timetable[];
@@ -279,7 +278,7 @@ const TimetableBuilder = () => {
279278
setFilters(values);
280279
console.log("Apply filters", values);
281280
};
282-
281+
283282
return (
284283
<>
285284
<div className="w-full">

0 commit comments

Comments
 (0)