File tree 1 file changed +15
-2
lines changed
src/features/teaching/screens
1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,8 @@ import { Theme } from '@lib/ui/types/Theme';
28
28
import { ExamStatusEnum } from '@polito/api-client' ;
29
29
import { NativeStackScreenProps } from '@react-navigation/native-stack' ;
30
30
31
+ import { DateTime } from 'luxon' ;
32
+
31
33
import { BottomBarSpacer } from '../../../core/components/BottomBarSpacer' ;
32
34
import { usePreferencesContext } from '../../../core/contexts/PreferencesContext' ;
33
35
import { useNotifications } from '../../../core/hooks/useNotifications' ;
@@ -83,8 +85,19 @@ export const TeachingScreen = ({ navigation }: Props) => {
83
85
84
86
return (
85
87
examsQuery . data
86
- . filter ( e => ! hiddenCourses . includes ( e . uniqueShortcode ) )
87
- . sort ( e => ( e . status === ExamStatusEnum . Booked ? - 1 : 1 ) )
88
+ . filter (
89
+ e =>
90
+ ! hiddenCourses . includes ( e . uniqueShortcode ) &&
91
+ e . examEndsAt ! . valueOf ( ) > DateTime . now ( ) . toJSDate ( ) . valueOf ( ) ,
92
+ )
93
+ . sort ( ( a , b ) => {
94
+ const status =
95
+ ( a . status === ExamStatusEnum . Booked ? - 1 : 0 ) +
96
+ ( b . status === ExamStatusEnum . Booked ? 1 : 0 ) ;
97
+ return status !== 0
98
+ ? status
99
+ : a . examStartsAt ! . valueOf ( ) - b . examStartsAt ! . valueOf ( ) ;
100
+ } )
88
101
. slice ( 0 , 4 ) ?? [ ]
89
102
) ;
90
103
} , [ coursePreferences , coursesQuery . data , examsQuery . data ] ) ;
You can’t perform that action at this time.
0 commit comments