Files
var-monorepo/apps/hub/app/(app)/events/page.tsx
2025-02-28 07:21:07 +01:00

45 lines
1.1 KiB
TypeScript

import { getServerSession } from "../../api/auth/[...nextauth]/auth";
import { PrismaClient } from "@repo/db";
import { ObligatedEvent, 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.findUnique({
where: {
id: session.user.id,
},
});
if (!user) return null;
const events = await prisma.event.findMany({
include: {
appointments: true,
participants: {
where: {
userId: user.id,
},
},
},
});
return (
<div className="grid grid-cols-6 gap-4">
<div className="col-span-full">
<p className="text-2xl font-semibold text-left flex items-center gap-2">
<RocketIcon className="w-5 h-5" /> Events & Kurse
</p>
</div>
{events.map((event) => {
if (event.type === "OBLIGATED_COURSE")
return <ObligatedEvent user={user} event={event} key={event.id} />;
if (event.type === "COURSE")
return <KursItem user={user} event={event} key={event.id} />;
})}
</div>
);
};