File tree 4 files changed +50
-6
lines changed
apps/site/src/app/(main)/portal/@applicant
4 files changed +50
-6
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import { redirect } from "next/navigation";
2
2
3
3
import getUserIdentity from "@/lib/utils/getUserIdentity" ;
4
4
5
+ import ConfirmAttendance from "./ConfirmAttendance" ;
5
6
import Message from "./Message" ;
6
7
import VerticalTimeline from "./VerticalTimeline" ;
7
8
import SignWaiver from "./SignWaiver" ;
@@ -24,17 +25,18 @@ async function Portal() {
24
25
redirect ( "/apply" ) ;
25
26
}
26
27
27
- const isAccepted =
28
- status === PortalStatus . accepted ||
29
- status === PortalStatus . waived ||
30
- status === PortalStatus . confirmed ;
28
+ const submittedWaiver =
29
+ status === PortalStatus . waived || status === PortalStatus . confirmed ;
30
+
31
+ const isAccepted = status === PortalStatus . accepted || submittedWaiver ;
31
32
32
33
return (
33
34
< div className = "bg-white text-black max-w-4xl rounded-2xl p-6 flex flex-col mb-24 w-full" >
34
35
< h2 className = "text-4xl font-semibold" > Status</ h2 >
35
36
< VerticalTimeline status = { status as PortalStatus } />
36
37
< Message status = { status as PortalStatus } />
37
38
{ isAccepted && < SignWaiver status = { status as PortalStatus } /> }
39
+ { submittedWaiver && < ConfirmAttendance status = { status } /> }
38
40
</ div >
39
41
) ;
40
42
}
Original file line number Diff line number Diff line change
1
+ import { PortalStatus } from "./ApplicantPortal" ;
2
+ import Button from "@/lib/components/Button/Button" ;
3
+
4
+ interface ConfirmAttendanceProps {
5
+ status : PortalStatus ;
6
+ }
7
+
8
+ function ConfirmAttendance ( { status } : ConfirmAttendanceProps ) {
9
+ const buttonText =
10
+ status === PortalStatus . confirmed
11
+ ? "I am no longer able to attend IrvineHacks 2024"
12
+ : "I will be attending IrvineHacks 2024" ;
13
+
14
+ return (
15
+ < div className = "mt-4" >
16
+ < hr />
17
+ < h3 className = "text-3xl my-4" > RSVP</ h3 >
18
+ { status === PortalStatus . confirmed ? (
19
+ < p >
20
+ Thank you for confirming your attendance. We look forward to seeing
21
+ you at the event!
22
+ </ p >
23
+ ) : (
24
+ < p >
25
+ If you plan on attending IrvineHacks 2024, please confirm your
26
+ attendance below!
27
+ </ p >
28
+ ) }
29
+ < form method = "post" action = "/api/user/rsvp" >
30
+ < Button className = "text-color-red" text = { buttonText } />
31
+ </ form >
32
+ </ div >
33
+ ) ;
34
+ }
35
+
36
+ export default ConfirmAttendance ;
Original file line number Diff line number Diff line change @@ -46,7 +46,12 @@ function Message({ status }: MessageProps) {
46
46
event!
47
47
</ >
48
48
) ,
49
- [ PortalStatus . confirmed ] : < > </ > ,
49
+ [ PortalStatus . confirmed ] : (
50
+ < p >
51
+ Thank you for confirming your attendance! We look forward to seeing you
52
+ at IrvineHacks!
53
+ </ p >
54
+ ) ,
50
55
} ;
51
56
52
57
return < div > { messages [ status ] } </ div > ;
Original file line number Diff line number Diff line change @@ -10,7 +10,8 @@ function SignWaiver({ status }: SignWaiverProps) {
10
10
return status === PortalStatus . waived ? null : (
11
11
< div >
12
12
< hr />
13
- < p >
13
+ < h3 className = "text-3xl my-4" > Waiver</ h3 >
14
+ < p className = "mt-4" >
14
15
In order to attend IrvineHacks 2024, please fill out the waiver below
15
16
</ p >
16
17
< Button
You can’t perform that action at this time.
0 commit comments