@@ -32,6 +32,18 @@ const MpeContainer: React.FC = () => {
32
32
const sameTime = hasCPEx && ugCPEx . startDate . getTime ( ) === gdCPEx . startDate . getTime ( ) ;
33
33
const { enableCPEx } = config ;
34
34
35
+ // Check if Undergraduate CPEx has ended
36
+ const isUgCPExEnded = ( ) : boolean => {
37
+ const now = new Date ( ) ;
38
+ return ! ! ( ugCPEx && ugCPEx . endDate && now > ugCPEx . endDate ) ;
39
+ } ;
40
+
41
+ // Check if Graduate CPEx has ended
42
+ const isGdCPExEnded = ( ) : boolean => {
43
+ const now = new Date ( ) ;
44
+ return ! ! ( gdCPEx && gdCPEx . endDate && now > gdCPEx . endDate ) ;
45
+ } ;
46
+
35
47
const onLogin = useCallback ( ( ) => {
36
48
setIsGettingSSOLink ( true ) ;
37
49
return getSSOLink ( )
@@ -61,6 +73,48 @@ const MpeContainer: React.FC = () => {
61
73
throw err ;
62
74
} ) ;
63
75
76
+ const renderCPExStatus = ( ) => {
77
+ if ( ! hasCPEx ) return null ;
78
+
79
+ const ugEnded = isUgCPExEnded ( ) ;
80
+ const gdEnded = isGdCPExEnded ( ) ;
81
+
82
+ if ( sameTime ) {
83
+ if ( ugEnded ) {
84
+ return (
85
+ < p >
86
+ < strong >
87
+ CPEx has ended for AY{ MPE_AY } Semester { MPE_SEMESTER } .
88
+ </ strong >
89
+ </ p >
90
+ ) ;
91
+ }
92
+ return (
93
+ < p >
94
+ < strong > CPEx will open on:</ strong > { ugCPEx . start }
95
+ </ p >
96
+ ) ;
97
+ }
98
+ return (
99
+ < div >
100
+ < p >
101
+ < strong >
102
+ { ugEnded
103
+ ? `Undergraduate CPEx has ended for AY${ MPE_AY } Semester ${ MPE_SEMESTER } .`
104
+ : `Undergraduate CPEx will open on: ${ ugCPEx . start } ` }
105
+ </ strong >
106
+ </ p >
107
+ < p >
108
+ < strong >
109
+ { gdEnded
110
+ ? `Graduate CPEx has ended for AY${ MPE_AY } Semester ${ MPE_SEMESTER } .`
111
+ : `Graduate CPEx will open on: ${ gdCPEx . start } ` }
112
+ </ strong >
113
+ </ p >
114
+ </ div >
115
+ ) ;
116
+ } ;
117
+
64
118
return (
65
119
< div className = { styles . pageContainer } >
66
120
< header className = { styles . header } >
@@ -129,21 +183,7 @@ const MpeContainer: React.FC = () => {
129
183
) : (
130
184
< >
131
185
< hr />
132
- { hasCPEx &&
133
- ( sameTime ? (
134
- < p >
135
- < strong > CPEx will open on:</ strong > { ugCPEx . start }
136
- </ p >
137
- ) : (
138
- < div >
139
- < p >
140
- < strong > Undergraduate CPEx will open on:</ strong > { ugCPEx . start }
141
- </ p >
142
- < p >
143
- < strong > Graduate CPEx will open on:</ strong > { gdCPEx . start }
144
- </ p >
145
- </ div >
146
- ) ) }
186
+ { renderCPExStatus ( ) }
147
187
</ >
148
188
) }
149
189
</ div >
0 commit comments