diff --git a/apps/hub/app/(app)/admin/event/[id]/page.tsx b/apps/hub/app/(app)/admin/event/[id]/page.tsx index 32984ffe..8583a4d5 100644 --- a/apps/hub/app/(app)/admin/event/[id]/page.tsx +++ b/apps/hub/app/(app)/admin/event/[id]/page.tsx @@ -16,7 +16,11 @@ export default async ({ params }: { params: Promise<{ id: string }> }) => { publicId: true, }, }); - console.log(users); + const appointments = await prisma.eventAppointment.findMany({ + where: { + eventId: parseInt(id), + }, + }); if (!event) return
Event not found
; - return
; + return ; }; diff --git a/apps/hub/app/(app)/admin/event/_components/Form.tsx b/apps/hub/app/(app)/admin/event/_components/Form.tsx index b8a9cf1f..57375138 100644 --- a/apps/hub/app/(app)/admin/event/_components/Form.tsx +++ b/apps/hub/app/(app)/admin/event/_components/Form.tsx @@ -1,26 +1,32 @@ 'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import { + EventAppointmentOptionalDefaults, EventAppointmentOptionalDefaultsSchema, EventOptionalDefaults, EventOptionalDefaultsSchema, ParticipantOptionalDefaultsSchema, } from '@repo/db/zod'; import { set, useForm } from 'react-hook-form'; -import { BADGES, Event, User } from '@repo/db'; +import { BADGES, Event, EventAppointment, User } from '@repo/db'; import { Bot, Calendar, FileText, UserIcon } from 'lucide-react'; import { Input } from '../../../../_components/ui/Input'; import { useRef, useState } from 'react'; -import { deleteEvent, upsertEvent } from '../action'; +import { deleteEvent, upsertAppointment, upsertEvent } from '../action'; import { Button } from '../../../../_components/ui/Button'; -import { redirect } from 'next/navigation'; +import { redirect, useRouter } from 'next/navigation'; import { Switch } from '../../../../_components/ui/Switch'; -import { PaginatedTable } from '../../../../_components/PaginatedTable'; +import { + PaginatedTable, + PaginatedTableRef, +} from '../../../../_components/PaginatedTable'; import { Select } from '../../../../_components/ui/Select'; +import { useSession } from 'next-auth/react'; export const Form = ({ event, users, + appointments = [], }: { event?: Event; users: { @@ -29,15 +35,21 @@ export const Form = ({ lastname: string; publicId: string; }[]; + appointments?: EventAppointment[]; }) => { + const { data: session } = useSession(); const form = useForm({ resolver: zodResolver(EventOptionalDefaultsSchema), defaultValues: event, }); - const appointmentForm = useForm({ + const appointmentForm = useForm({ resolver: zodResolver(EventAppointmentOptionalDefaultsSchema), + defaultValues: { + eventId: event?.id, + presenterId: session?.user?.id, + }, }); - console.log(appointmentForm.formState.errors); + const appointmentsTableRef = useRef(null); const [loading, setLoading] = useState(false); const [deleteLoading, setDeleteLoading] = useState(false); const addParticipantModal = useRef(null); @@ -51,20 +63,26 @@ export const Form = ({ ✕ -

Teilnehmer hinzufügen

+

Termin hinzufügen

{ - console.log(values); + if (!event) return; + const createdAppointment = await upsertAppointment({ + appointmentDate: values.appointmentDate, + eventId: event?.id, + presenterId: values.presenterId, + }); + console.log(createdAppointment); + addParticipantModal.current?.close(); + appointmentsTableRef.current?.refresh(); })} + className="flex flex-col" > -