108 lines
4.1 KiB
TypeScript
108 lines
4.1 KiB
TypeScript
'use client';
|
|
import { DrawingPinFilledIcon, EnterIcon } from '@radix-ui/react-icons';
|
|
import { Event, User } from '@repo/db';
|
|
import ModalBtn from './modalBtn';
|
|
import MDEditor from '@uiw/react-md-editor';
|
|
|
|
export const KursItem = ({ user, event }: { user: User; event: Event }) => {
|
|
return (
|
|
<div className="col-span-full">
|
|
<div className="card bg-base-200 shadow-xl mb-4">
|
|
<div className="card-body">
|
|
<h2 className="card-title">{event.name}</h2>
|
|
<div className="absolute top-0 right-0 m-4">
|
|
<span className="badge badge-info badge-outline">
|
|
Zusatzqualifikation
|
|
</span>
|
|
</div>
|
|
<div className="grid grid-cols-6 gap-4">
|
|
<div className="col-span-4">
|
|
<div className="text-left text-balance">
|
|
<MDEditor.Markdown
|
|
source={event.description}
|
|
className="whitespace-pre-wrap"
|
|
style={{
|
|
backgroundColor: 'transparent',
|
|
}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div className="col-span-2">{event.finishedBadges}</div>
|
|
</div>
|
|
<div className="card-actions flex justify-between items-center mt-5">
|
|
<div>
|
|
<p className="text-gray-600 text-left flex items-center gap-2">
|
|
<DrawingPinFilledIcon /> <b>Teilnahmevoraussetzungen: </b>
|
|
{(!event.starterMoodleCourseId ||
|
|
!event.requiredBadges.length) &&
|
|
'Keine'}
|
|
{event.starterMoodleCourseId && (
|
|
<a className="link link-info" href="">
|
|
Moodle Kurs {event.starterMoodleCourseId}
|
|
</a>
|
|
)}
|
|
</p>
|
|
{!!event.requiredBadges.length && (
|
|
<div className="flex ml-6">
|
|
<b className="text-gray-600 text-left">Abzeichen:</b>
|
|
<div className="flex gap-2">
|
|
{event.requiredBadges.map((badge) => (
|
|
<div className="badge badge-secondary badge-outline">
|
|
{badge}
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
)}
|
|
</div>
|
|
<ModalBtn
|
|
title={event.name}
|
|
dates={['Dienstag, 25 Februar 2025', 'Mittwoch, 26 Februar 2025']}
|
|
modalId={`${event.name}_modal.${event.id}`}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export const PilotKurs = ({ user }: { user: User }) => {
|
|
{
|
|
/* STATISCH, DA FÜR ALLE NEUEN MITGLIEDER MANDATORY, WIRD AUSGEBLENDET WENN ABSOLVIERT */
|
|
}
|
|
return (
|
|
<div className="col-span-full">
|
|
<div className="card card-bordered border-secondary bg-base-200 shadow-xl mb-4">
|
|
<div className="card-body">
|
|
<h2 className="card-title">Einsteigerkurs für Piloten</h2>
|
|
<div className="absolute top-0 right-0 m-4">
|
|
<span className="badge badge-secondary badge-outline">
|
|
Verpflichtend
|
|
</span>
|
|
</div>
|
|
<div className="grid grid-cols-6 gap-4">
|
|
<div className="col-span-4">
|
|
<p className="text-left text-balance">
|
|
In diesem Kurs lernen Piloten die Grundlagen der Luftrettung,
|
|
Einsatzverfahren, den Umgang mit dem BOS-Funk und einige
|
|
medizinische Basics. Der Kurs bietet eine ideale Vorbereitung
|
|
für alle Standard Operations bei Virtual Air Rescue.
|
|
</p>
|
|
</div>
|
|
<div className="col-span-2">Badge</div>
|
|
</div>
|
|
<div className="card-actions flex justify-between items-center mt-5">
|
|
<p className="text-gray-600 text-left flex items-center gap-2">
|
|
<DrawingPinFilledIcon /> <b>Teilnahmevoraussetzungen:</b> Keine
|
|
</p>
|
|
<button className="btn btn-outline btn-secondary btn-wide">
|
|
<EnterIcon /> Zum Moodle Kurs
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|