@@ -31,9 +31,9 @@ export default function HomePage() {
3131 const eventsUrl = "https://raw.githubusercontent.com/TUM-Dev/Website/refs/heads/event-data/scheduled_events.json" ;
3232
3333 // Use state to manage the events data and a loading state
34- const [ events , setEvents ] = useState ( [ ] ) ;
34+ const [ events , setEvents ] = useState < EventProps [ ] > ( [ ] ) ;
3535 const [ isLoading , setIsLoading ] = useState ( true ) ;
36- const [ error , setError ] = useState ( null ) ;
36+ const [ error , setError ] = useState < string | null > ( null ) ;
3737
3838 const members : readonly MemberProps [ ] = [
3939 {
@@ -249,24 +249,26 @@ export default function HomePage() {
249249 const data = await response . json ( ) ;
250250
251251 // Convert timestamps from string to Date objects
252- const formattedEvents = data . map ( event => ( {
252+ const formattedEvents : EventProps [ ] = data . map ( ( event : any ) => ( {
253253 ...event ,
254254 title : event . name ,
255255 description : event . description ,
256256 location : event . entity_metadata ?. location || "Online" , // Use optional chaining for safety
257- startTimestamp : new Date ( event . scheduled_start_time ) ,
258- endTimestamp : new Date ( event . scheduled_end_time ) ,
257+ startTimestamp : new Date ( event . scheduled_start_time ) . getTime ( ) ,
258+ endTimestamp : new Date ( event . scheduled_end_time ) . getTime ( ) ,
259259 // Derive the type based on the name
260260 type : event . name . toLowerCase ( ) . includes ( "coding" ) ? "coding" :
261261 event . name . toLowerCase ( ) . includes ( "meeting" ) ? "meeting" :
262262 "event"
263263 } ) ) ;
264264
265265 // Set the events state with the fetched data, sorted by start time
266- setEvents ( formattedEvents . sort ( ( a , b ) => a . scheduled_start_time - b . scheduled_start_time ) ) ;
266+ setEvents ( formattedEvents . sort ( ( a , b ) => a . startTimestamp - b . startTimestamp ) ) ;
267267 } catch ( e ) {
268268 // Set the error state if fetching fails
269- setError ( e . message ) ;
269+ if ( e instanceof Error ) {
270+ setError ( e . message ) ;
271+ }
270272 } finally {
271273 // Set loading to false once the request is complete
272274 setIsLoading ( false ) ;
@@ -430,9 +432,9 @@ export default function HomePage() {
430432 Vergangene Treffen
431433 </ h3 >
432434 { events
433- . filter ( ( event ) => new Date ( event . endTimestamp ) < today )
435+ . filter ( ( event ) => event . endTimestamp < today . getTime ( ) )
434436 . map ( ( event ) => (
435- < Event key = { event . name + event . startTimestamp } { ...event } />
437+ < Event key = { event . title + event . startTimestamp } { ...event } />
436438 ) ) }
437439 </ div >
438440
@@ -443,9 +445,9 @@ export default function HomePage() {
443445 Kommende Events
444446 </ h3 >
445447 { events
446- . filter ( ( event ) => new Date ( event . endTimestamp ) >= today )
448+ . filter ( ( event ) => event . endTimestamp >= today . getTime ( ) )
447449 . map ( ( event ) => (
448- < Event key = { event . name + event . startTimestamp } { ...event } />
450+ < Event key = { event . title + event . startTimestamp } { ...event } />
449451 ) ) }
450452 </ div >
451453 </ div >
0 commit comments