diff --git a/apps/hub/app/(app)/admin/event/page.tsx b/apps/hub/app/(app)/admin/event/page.tsx index cf3a0448..078295ae 100644 --- a/apps/hub/app/(app)/admin/event/page.tsx +++ b/apps/hub/app/(app)/admin/event/page.tsx @@ -9,6 +9,7 @@ export default function Page() { return ( <> }) { + const { id } = await params; + const heliport = await prisma.heliport.findUnique({ + where: { + id: parseInt(id), + }, + }); + if (!heliport) return
Heliport not found
; + return ; +} diff --git a/apps/hub/app/(app)/admin/heliport/_components/Form.tsx b/apps/hub/app/(app)/admin/heliport/_components/Form.tsx new file mode 100644 index 00000000..93893c55 --- /dev/null +++ b/apps/hub/app/(app)/admin/heliport/_components/Form.tsx @@ -0,0 +1,151 @@ +"use client"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { HeliportOptionalDefaultsSchema } from "@repo/db/zod"; +import { useForm } from "react-hook-form"; +import { Heliport, HeliportType } from "@repo/db"; +import { FileText, LocateIcon } from "lucide-react"; +import { Input } from "../../../../_components/ui/Input"; +import { useState } from "react"; +import { deleteHeliport, upsertHeliport } from "../action"; +import { Button } from "../../../../_components/ui/Button"; +import { redirect } from "next/navigation"; + +export const HeliportForm = ({ heliport }: { heliport?: Heliport }) => { + const form = useForm({ + resolver: zodResolver(HeliportOptionalDefaultsSchema), + defaultValues: heliport, + }); + const [loading, setLoading] = useState(false); + const [deleteLoading, setDeleteLoading] = useState(false); + return ( + <> +
{ + setLoading(true); + await upsertHeliport(values, heliport?.id); + setLoading(false); + if (!heliport) redirect(`/admin/Heliport`); + })} + className="flex flex-wrap gap-3" + > +
+
+

+ Allgemeines +

+ + + + + + + +