diff --git a/apps/hub/app/(app)/admin/event/_components/Form.tsx b/apps/hub/app/(app)/admin/event/_components/Form.tsx index 57375138..2c04d6ca 100644 --- a/apps/hub/app/(app)/admin/event/_components/Form.tsx +++ b/apps/hub/app/(app)/admin/event/_components/Form.tsx @@ -22,6 +22,7 @@ import { } from '../../../../_components/PaginatedTable'; import { Select } from '../../../../_components/ui/Select'; import { useSession } from 'next-auth/react'; +import { MarkdownEditor } from '../../../../_components/ui/MDEditor'; export const Form = ({ event, @@ -107,12 +108,7 @@ export const Form = ({ Allgemeines - + Termine - + {event && ( + + )} { console.log(row.original); + // TODO: open modal to edit appointment }} className="btn btn-sm btn-outline" > diff --git a/apps/hub/app/(app)/events/_components/item.tsx b/apps/hub/app/(app)/events/_components/item.tsx index 09168b7b..24a23fbb 100644 --- a/apps/hub/app/(app)/events/_components/item.tsx +++ b/apps/hub/app/(app)/events/_components/item.tsx @@ -1,28 +1,15 @@ -"use client"; -import { DrawingPinFilledIcon, EnterIcon } from "@radix-ui/react-icons"; -import { User } from "@repo/db"; -import ModalBtn from "./modalBtn"; +'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, - title, - type, - beschreibung, - badge, - moodleReq, -}: { - user: User; - title: string; - type: string; - beschreibung: string; - badge: string; - moodleReq: boolean; -}) => { +export const KursItem = ({ user, event }: { user: User; event: Event }) => { return (
-

{title}

+

{event.name}

Zusatzqualifikation @@ -30,21 +17,48 @@ export const KursItem = ({
-

{beschreibung}

+
+ +
-
{badge}
+
{event.finishedBadges}
-

- Teilnahmevoraussetzungen: - - Moodle Kurs /MOODLEKURSTITLE\ - -

+
+

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

+ {!!event.requiredBadges.length && ( +
+ Abzeichen: +
+ {event.requiredBadges.map((badge) => ( +
+ {badge} +
+ ))} +
+
+ )} +
diff --git a/apps/hub/app/(app)/events/page.tsx b/apps/hub/app/(app)/events/page.tsx index 81d51f59..3515681d 100644 --- a/apps/hub/app/(app)/events/page.tsx +++ b/apps/hub/app/(app)/events/page.tsx @@ -1,22 +1,16 @@ -import { getServerSession } from "../../api/auth/[...nextauth]/auth"; -import { PrismaClient } from "@repo/db"; -import { PilotKurs, KursItem } from "./_components/item"; -import { - RocketIcon, - DrawingPinFilledIcon, - EnterIcon, -} from "@radix-ui/react-icons"; +import { getServerSession } from '../../api/auth/[...nextauth]/auth'; +import { PrismaClient } from '@repo/db'; +import { PilotKurs, KursItem } from './_components/item'; +import { RocketIcon } from '@radix-ui/react-icons'; export default async () => { const prisma = new PrismaClient(); const session = await getServerSession(); if (!session) return null; - const user = await prisma.user.findFirst({ - where: { - id: session.user.id, - }, - }); + const user = session.user; + const events = await prisma.event.findMany(); if (!user) return null; + return (
@@ -25,21 +19,9 @@ export default async () => {

- + {events.map((event) => ( + + ))}
); }; diff --git a/apps/hub/app/_components/PaginatedTable.tsx b/apps/hub/app/_components/PaginatedTable.tsx index d7dc5ea7..76d1951c 100644 --- a/apps/hub/app/_components/PaginatedTable.tsx +++ b/apps/hub/app/_components/PaginatedTable.tsx @@ -90,9 +90,9 @@ export function PaginatedTable({ return (
- {searchFields.length > 0 && ( -
-
{leftOfSearch}
+
+
{leftOfSearch}
+ {searchFields.length > 0 && ( ({ }} className="input input-bordered w-full max-w-xs justify-end" /> -
{rightOfSearch}
-
- )} + )} +
{rightOfSearch}
+
{ + name: Path; + form: UseFormReturn; + formOptions?: RegisterOptions; + label?: string; + placeholder?: string; + className?: string; +} + +export const MarkdownEditor = ({ + name, + label = name, + placeholder = label, + form, + className, +}: MarkdownEditorProps) => { + return ( + + ); +}; diff --git a/apps/hub/app/_components/ui/Switch.tsx b/apps/hub/app/_components/ui/Switch.tsx index 23532f33..553e3fda 100644 --- a/apps/hub/app/_components/ui/Switch.tsx +++ b/apps/hub/app/_components/ui/Switch.tsx @@ -23,9 +23,11 @@ export const Switch = ({ ...inputProps }: InputProps) => { return ( -
-