@@ -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