Skip to content

Commit ba01f0f

Browse files
committed
Changed Sign-up label for events
1 parent 8032d50 commit ba01f0f

File tree

5 files changed

+1116
-9347
lines changed

5 files changed

+1116
-9347
lines changed

frontend/src/components/pages/events/EventDetail/SignUp/SignUpButton.tsx

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { LoadingButton } from "@mui/lab";
22
import { Button, Dialog, DialogActions, DialogContent, Typography } from "@mui/material";
3-
import { useState } from "react";
3+
import { useContext, useState } from "react";
4+
5+
import dayjs from "@/lib/date";
6+
import { UserContext } from "@/pages/events/[id]";
47

58
type Event = {
69
signupOpenDate: string;
@@ -9,6 +12,10 @@ type Event = {
912
isAttendable: boolean;
1013
};
1114

15+
type User = {
16+
gradeYear?: number | null;
17+
};
18+
1219
type Props = {
1320
isSignedUp?: boolean | null;
1421
disabled?: boolean;
@@ -17,9 +24,22 @@ type Props = {
1724
event: Event;
1825
};
1926

27+
function isWaitList(event: Event, user: User) {
28+
const signUpOpenDate = event.signupOpenDate ? dayjs(event.signupOpenDate) : undefined;
29+
const isSignUpOpen = signUpOpenDate && dayjs().isSameOrAfter(signUpOpenDate);
30+
31+
let canAttend = event.isAttendable && isSignUpOpen;
32+
if (user.gradeYear && event.allowedGradeYears) {
33+
canAttend = canAttend && event.allowedGradeYears.includes(user.gradeYear);
34+
}
35+
36+
return event.isFull && canAttend;
37+
}
38+
2039
export const SignUpButton: React.FC<Props> = ({ isSignedUp, onSignUp, onSignOff, disabled, event }) => {
2140
const [confirmSignOff, setConfirmSignOff] = useState(false);
2241
const [loading, setLoading] = useState(false);
42+
const user = useContext(UserContext);
2343

2444
function handleSignUp() {
2545
setLoading(true);
@@ -61,7 +81,7 @@ export const SignUpButton: React.FC<Props> = ({ isSignedUp, onSignUp, onSignOff,
6181
)}
6282
{!isSignedUp && (
6383
<LoadingButton fullWidth loading={loading} variant="contained" onClick={handleSignUp} disabled={disabled}>
64-
Meld på
84+
{user != null && isWaitList(event, user) ? "Meld på venteliste" : "Meld på"}
6585
</LoadingButton>
6686
)}
6787
</>

0 commit comments

Comments
 (0)