diff --git a/apps/hub/app/(app)/_components/Header.tsx b/apps/hub/app/(app)/_components/Header.tsx index 7a9a3549..8a9bfddd 100644 --- a/apps/hub/app/(app)/_components/Header.tsx +++ b/apps/hub/app/(app)/_components/Header.tsx @@ -2,43 +2,42 @@ import { PlaneIcon, Workflow } from "lucide-react"; import { useSession } from "next-auth/react"; interface HeaderProps { - isChecked: boolean; - handleCheckboxChange: (event: React.ChangeEvent) => void; + isChecked: boolean; + handleCheckboxChange: (event: React.ChangeEvent) => void; } export const Header = ({ isChecked, handleCheckboxChange }: HeaderProps) => { - const session = useSession(); - console.log(session); - return ( -
-

- Hallo,{" "} - {session.status === "authenticated" - ? session.data?.user.firstname - : ""} - {"!"} -

-
-
- -
-
-
- ); + const session = useSession(); + return ( +
+

+ Hallo,{" "} + {session.status === "authenticated" + ? session.data?.user.firstname + : ""} + {"!"} +

+
+
+ +
+
+
+ ); }; diff --git a/apps/hub/app/(app)/events/_components/item.tsx b/apps/hub/app/(app)/events/_components/item.tsx index 83ca1422..7c498355 100644 --- a/apps/hub/app/(app)/events/_components/item.tsx +++ b/apps/hub/app/(app)/events/_components/item.tsx @@ -7,12 +7,14 @@ import MDEditor from "@uiw/react-md-editor"; export const KursItem = ({ user, event, + selectedAppointments, }: { user: User; event: Event & { appointments: EventAppointment[]; participants: Participant[]; }; + selectedAppointments: EventAppointment[]; }) => { return (
@@ -42,14 +44,7 @@ export const KursItem = ({

Teilnahmevoraussetzungen: - {(!event.starterMoodleCourseId || - !event.requiredBadges.length) && - "Keine"} - {event.starterMoodleCourseId && ( - - Moodle Kurs {event.starterMoodleCourseId} - - )} + {!event.requiredBadges.length && "Keine"}

{!!event.requiredBadges.length && (
@@ -65,6 +60,7 @@ export const KursItem = ({ )}
{ { /* STATISCH, DA FÜR ALLE NEUEN MITGLIEDER MANDATORY, WIRD AUSGEBLENDET WENN ABSOLVIERT */ @@ -114,6 +112,7 @@ export const ObligatedEvent = ({ Teilnahmevoraussetzungen: Keine

{ @@ -43,6 +46,11 @@ const ModalBtn = ({ }; }, [modalId]); + const canSelectDate = + event.hasPresenceEvents && + !participant?.attended && + (selectedAppointments.length === 0 || participant?.appointmentCancelled); + const openModal = () => { const modal = document.getElementById(modalId) as HTMLDialogElement; document.body.classList.add("modal-open"); @@ -71,35 +79,47 @@ const ModalBtn = ({

{title}

{event.hasPresenceEvents && (
-
- - -
-

- Bitte finde dich an diesem Termin in unserem Discord ein. -

+ {canSelectDate && ( +
+ + {!!dates.length && ( + + )} + {!dates.length && ( +

+ Keine Termine verfügbar +

+ )} +
+ )} + {!!dates.length && ( +

+ Bitte finde dich an diesem Termin in unserem Discord ein. +

+ )}
)} {event.finisherMoodleCourseId && ( )}
- {event.hasPresenceEvents && ( + {!!(event.hasPresenceEvents && dates.length) && ( @@ -119,13 +139,15 @@ export default ModalBtn; const MoodleCourseIndicator = ({ completed, moodleCourseId, - eventId, + event, + participant, user, }: { + user: User; + participant?: Participant; completed?: boolean; moodleCourseId: string; - eventId: number; - user: User; + event: Event; }) => { const courseUrl = `${process.env.NEXT_PUBLIC_MOODLE_URL}/course/view.php?id=${moodleCourseId}`; if (completed) @@ -135,13 +157,20 @@ const MoodleCourseIndicator = ({ Moodle Kurs abgeschlossen

); + if (!participant || (event.hasPresenceEvents && !participant?.attended)) + return ( +

+ + Teilnahme an Event erforderlich +

+ ); return (

Moodle-Kurs Benötigt