"use client"; import { useEffect } from "react"; import { CheckCircledIcon, EnterIcon, DrawingPinFilledIcon } from "@radix-ui/react-icons"; import { Event, Participant, User } from "@repo/db"; import { cn } from "@repo/shared-components"; import { inscribeToMoodleCourse, upsertParticipant } from "../actions"; import { BookCheck, Check, CirclePlay, ExternalLink, EyeIcon, Info, TriangleAlert, } from "lucide-react"; import { eventCompleted } from "@repo/shared-components"; import MDEditor from "@uiw/react-md-editor"; interface ModalBtnProps { title: string; event: Event; participant?: Participant; user: User; modalId: string; } const ModalBtn = ({ title, modalId, participant, event, user }: ModalBtnProps) => { useEffect(() => { const modal = document.getElementById(modalId) as HTMLDialogElement; const handleOpen = () => { document.body.classList.add("modal-open"); }; const handleClose = () => { document.body.classList.remove("modal-open"); }; modal?.addEventListener("show", handleOpen); modal?.addEventListener("close", handleClose); return () => { modal?.removeEventListener("show", handleOpen); modal?.removeEventListener("close", handleClose); }; }, [modalId]); const openModal = () => { const modal = document.getElementById(modalId) as HTMLDialogElement; modal?.showModal(); }; const closeModal = () => { const modal = document.getElementById(modalId) as HTMLDialogElement; modal?.close(); }; const missingRequirements = event.requiredBadges?.length > 0 && !event.requiredBadges.some((badge) => user.badges.includes(badge)); return ( <> > ); }; export default ModalBtn; const MoodleCourseIndicator = ({ completed, moodleCourseId, event, user, }: { user: User; participant?: Participant; completed?: boolean; moodleCourseId: string; event: Event; }) => { const courseUrl = `${process.env.NEXT_PUBLIC_MOODLE_URL}/course/view.php?id=${moodleCourseId}`; if (completed) return (
Wenn du nach dem Anmelden den moodle Kurs nicht siehst, warte ein paar Sekunden und lade die Seite neu.