@@ -36,12 +36,28 @@ export default function UserInfo(props: { reload: boolean }) {
3636 async function fetchMeetings ( ) {
3737 try {
3838 const resp = await getMeetingsOfWeek ( axiosInstance ) ;
39- setWeeklyMeetings ( resp ) ;
39+ setWeeklyMeetings ( filterMeetingsThisWeek ( resp ) ) ; // this is necessary, because backend doesn't have filter function yet
4040 } catch ( e ) {
4141 console . error ( e ) ;
4242 }
4343 }
4444
45+ function filterMeetingsThisWeek ( meetings : MeetingDto [ ] ) : MeetingDto [ ] {
46+ const now = new Date ( ) ;
47+ const startOfWeek = new Date ( now ) ;
48+ startOfWeek . setDate ( now . getDate ( ) - now . getDay ( ) + 1 ) ;
49+ startOfWeek . setHours ( 0 , 0 , 0 , 0 ) ;
50+
51+ const endOfWeek = new Date ( startOfWeek ) ;
52+ endOfWeek . setDate ( startOfWeek . getDate ( ) + 6 ) ;
53+ endOfWeek . setHours ( 23 , 59 , 59 , 999 ) ;
54+
55+ return meetings . filter ( meeting => {
56+ const from = new Date ( meeting . dateFrom ) ;
57+ return from >= startOfWeek && from <= endOfWeek ;
58+ } ) ;
59+ }
60+
4561 function calculateProgress ( module : UserModule ) {
4662 if ( ! module . chapter ) return 0 ;
4763 let total = 0 , checked = 0 ;
@@ -65,7 +81,7 @@ export default function UserInfo(props: { reload: boolean }) {
6581 const openExamModal = ( ) => setIsExamModalOpen ( true ) ;
6682 const closeExamModal = ( ) => setIsExamModalOpen ( false ) ;
6783
68- const handleAddExam = async ( moduleName : string , date : string , time : string , room : string ) => {
84+ const handleAddExam = async ( moduleName : string , date : string , time : string , room : string | undefined ) => {
6985 const updated = modules . map ( m =>
7086 m . name === moduleName
7187 ? { ...m , examDate : date , examLoc : room , examTime : time }
0 commit comments