Skip to content

Commit 132a609

Browse files
committed
Fix calendar height and fix bugs for Winter 2026 semester and Summer 2025 semester
1 parent cd8dc73 commit 132a609

File tree

2 files changed

+28
-27
lines changed

2 files changed

+28
-27
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ const Calendar = React.memo<CalendarProps>(
134134
createViewMonthAgenda(),
135135
],
136136
selectedDate: semesterStartDate,
137+
minDate: semesterStartDate,
138+
maxDate: semesterEndDate,
137139
defaultView: viewWeek.name,
138140
events: [...courseEventsParsed, ...userEventsParsed],
139141
calendars: {
@@ -153,7 +155,7 @@ const Calendar = React.memo<CalendarProps>(
153155
},
154156
plugins: [createDragAndDropPlugin(), createEventModalPlugin()],
155157
weekOptions: {
156-
gridHeight: 1000,
158+
gridHeight: 500,
157159
},
158160
});
159161

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

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ const TimetableBuilder = () => {
159159
data: TimetableEvents;
160160
};
161161

162+
const [loadedSemester, setLoadedSemester] = useState(false);
162163
const [loadedCourses, setLoadedCourses] = useState(false);
163164
const [loadedOfferingIds, setLoadedOfferingIds] = useState(false);
164165
const [loadedRestrictions, setLoadedRestrictions] = useState(false);
@@ -169,16 +170,32 @@ const TimetableBuilder = () => {
169170
data: Restriction[];
170171
};
171172

173+
const { data: timetablesData } = useGetTimetablesQuery() as {
174+
data: Timetable[];
175+
};
176+
const timetables = timetablesData || [];
177+
const currentTimetableTitle = timetables.find(
178+
(timetable) => timetable.id === timetableId,
179+
)?.timetable_title;
180+
const currentTimetableSemester = timetables.find(
181+
(timetable) => timetable.id === timetableId,
182+
)?.semester;
183+
172184
// Set the state variable courseEvents, and set the form values for 'offeringIds', 'courses', and 'restrictions'
173185
useEffect(() => {
174-
if (
175-
!loadedOfferingIds &&
176-
timetableEventsData?.courseEvents &&
177-
!loadedCourses &&
178-
timetableEventsData?.courseEvents &&
186+
if (!loadedSemester && currentTimetableSemester) {
187+
form.setValue("semester", currentTimetableSemester);
188+
setLoadedSemester(true);
189+
}
190+
191+
if (timetableEventsData &&
192+
coursesData &&
179193
allCoursesData &&
180-
!loadedRestrictions &&
181-
restrictionsData
194+
offeringIdToCourseIdMap &&
195+
restrictionsData &&
196+
!loadedCourses &&
197+
!loadedOfferingIds &&
198+
!loadedRestrictions
182199
) {
183200
const existingOfferingIds = [
184201
...new Set(
@@ -229,25 +246,7 @@ const TimetableBuilder = () => {
229246
form.setValue("restrictions", parsedRestrictions);
230247
setLoadedRestrictions(true);
231248
}
232-
}, [
233-
timetableEventsData,
234-
coursesData,
235-
restrictionsData,
236-
loadedCourses,
237-
loadedOfferingIds,
238-
loadedRestrictions,
239-
form,
240-
allCoursesData,
241-
offeringIdToCourseIdMap,
242-
]);
243-
244-
const { data: timetablesData } = useGetTimetablesQuery() as {
245-
data: Timetable[];
246-
};
247-
const timetables = timetablesData || [];
248-
const currentTimetableTitle = timetables.find(
249-
(timetable) => timetable.id === timetableId,
250-
)?.timetable_title;
249+
}, [timetableEventsData, coursesData, restrictionsData, loadedCourses, loadedOfferingIds, loadedRestrictions, form, allCoursesData, offeringIdToCourseIdMap, loadedSemester, currentTimetableSemester]);
251250

252251
useEffect(() => {
253252
if (searchQuery) {

0 commit comments

Comments
 (0)