@@ -117,7 +117,7 @@ const Calendar = React.memo<CalendarProps>(
117117 const [ deleteRestriction ] = useDeleteRestrictionMutation ( ) ;
118118
119119 const [ errorMessage , setErrorMessage ] = useState < string | null > ( null ) ;
120-
120+ const [ updateErrorMessage , setUpdateErrorMessage ] = useState < string | null > ( null ) ;
121121 const semesterStartDate = getSemesterStartAndEndDates ( semester ) . start ;
122122 const { start : semesterStartDatePlusOneWeek , end : semesterEndDate } =
123123 getSemesterStartAndEndDatesPlusOneWeek ( semester ) ;
@@ -280,12 +280,7 @@ const Calendar = React.memo<CalendarProps>(
280280 } ;
281281
282282 const handleUpdate = async ( ) => {
283- try {
284- await updateTimetable ( { id : editingTimetableId } ) . unwrap ( ) ;
285- } catch ( error ) {
286- console . log ( "cannot update rip" ) ;
287- return ;
288- }
283+ const timetableTitle = timetableTitleRef . current ?. value ?? "" ;
289284 setShowLoadingPage ( true ) ;
290285
291286 const offeringIdsToDelete = oldOfferingIds . filter (
@@ -294,6 +289,11 @@ const Calendar = React.memo<CalendarProps>(
294289 const offeringIdsToAdd = newOfferingIds . filter (
295290 ( offeringId ) => ! oldOfferingIds . includes ( offeringId ) ,
296291 ) ;
292+ if ( offeringIdsToAdd . length === 0 && offeringIdsToDelete . length === 0 ) {
293+ setUpdateErrorMessage ( "You have made no changes to the timetable!" ) ;
294+ setShowLoadingPage ( false ) ;
295+ return ;
296+ }
297297 // Delete course events
298298 for ( const offeringId of offeringIdsToDelete ) {
299299 const { error : deleteError } = await deleteEvent ( {
@@ -347,12 +347,20 @@ const Calendar = React.memo<CalendarProps>(
347347 console . error ( restrictionError ) ;
348348 }
349349 }
350+
351+ try {
352+ await updateTimetable ( { id : editingTimetableId , timetable_title : timetableTitle } ) . unwrap ( ) ;
353+ } catch ( error ) {
354+ setUpdateErrorMessage ( "You have made no changes to the timetable" ) ;
355+ setShowLoadingPage ( false ) ;
356+ return ;
357+ }
350358 navigate ( "/home" ) ;
351359 } ;
352360
353361 return (
354362 < div >
355- < h1 className = "text-2xl flex flex-row justify-between font-medium tracking-tight mb-8 " >
363+ < h1 className = "text-2xl flex flex-row justify-between font-medium tracking-tight mb-4 " >
356364 < div > { header } </ div >
357365 < TimetableErrorDialog
358366 errorMessage = { errorMessage }
@@ -431,7 +439,7 @@ const Calendar = React.memo<CalendarProps>(
431439 Update Timetable
432440 </ Button >
433441 </ div >
434- < div className = "text-red-500 font-bold" > Yes </ div >
442+ < div className = "mt-1 text-sm text- red-500 font-bold" > { updateErrorMessage } </ div >
435443 </ div >
436444 ) }
437445 </ h1 >
0 commit comments