Skip to content

Commit 2959785

Browse files
kaze-droidjloh02
andauthored
feat(cpex): Check if CPEx has ended and change description accordingly (#4085)
* check if CPEx has ended and change description accordingly * lint code --------- Co-authored-by: Jonathan Loh <[email protected]>
1 parent 56811a2 commit 2959785

File tree

1 file changed

+55
-15
lines changed

1 file changed

+55
-15
lines changed

website/src/views/mpe/MpeContainer.tsx

Lines changed: 55 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ const MpeContainer: React.FC = () => {
3232
const sameTime = hasCPEx && ugCPEx.startDate.getTime() === gdCPEx.startDate.getTime();
3333
const { enableCPEx } = config;
3434

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+
3547
const onLogin = useCallback(() => {
3648
setIsGettingSSOLink(true);
3749
return getSSOLink()
@@ -61,6 +73,48 @@ const MpeContainer: React.FC = () => {
6173
throw err;
6274
});
6375

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+
64118
return (
65119
<div className={styles.pageContainer}>
66120
<header className={styles.header}>
@@ -129,21 +183,7 @@ const MpeContainer: React.FC = () => {
129183
) : (
130184
<>
131185
<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()}
147187
</>
148188
)}
149189
</div>

0 commit comments

Comments
 (0)