+
+
Add New Event
+
+
+
+
+
+ );
+};
+
+export default PgaEventList;
diff --git a/components/admin/pga/pga-matchup-form.tsx b/components/admin/pga/pga-matchup-form.tsx
new file mode 100644
index 0000000..a481d38
--- /dev/null
+++ b/components/admin/pga/pga-matchup-form.tsx
@@ -0,0 +1,184 @@
+"use client";
+import { api } from "@/convex/_generated/api";
+import { useMutation, useQuery } from "convex/react";
+import { useForm } from "react-hook-form";
+import { zodResolver } from "@hookform/resolvers/zod";
+import * as z from "zod";
+import {
+ Form,
+ FormControl,
+ FormField,
+ FormItem,
+ FormLabel,
+ FormMessage,
+} from "@/components/ui/form";
+import { Input } from "@/components/ui/input";
+import { Button } from "@/components/ui/button";
+import { useToast } from "@/components/ui/use-toast";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import { Doc } from "@/convex/_generated/dataModel";
+
+const formSchema = z.object({
+ golferAId: z.string(),
+ golferBId: z.string(),
+ holes: z.coerce.number(),
+ thru: z.coerce.number(),
+ startTime: z.string().refine((val) => !isNaN(Date.parse(val)), {
+ message: "Please enter a valid date and time.",
+ }),
+ eventId: z.string(),
+});
+
+const PgaMatchupForm = () => {
+ const players = useQuery(api.pga.getPgaPlayers, {});
+ const events = useQuery(api.pga.getPgaEvents, {});
+ const createMatchup = useMutation(api.pga.createPgaMatchup);
+ const { toast } = useToast();
+
+ const form = useForm