"use client" import { z } from "zod" import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { toast } from "@/components/ui/use-toast" import { randomPublicationTitle } from "app/lib/shortStoryTitleGenerator" import { ComponentProps } from "react" import { Genre } from "@prisma/client" import GenrePicker from "./genrePicker" import { pubSchema } from "./schemas" import { useRouter } from "next/navigation" export default function PubForm({ genres, createPub, className }: ComponentProps<"div"> & { genres: Array, createPub: (data: any) => void }) { const form = useForm>({ resolver: zodResolver(pubSchema), defaultValues: { title: "", link: "", query_after_days: 30, genres: [] }, }) const router = useRouter() async function onSubmit(values: z.infer) { try { const res = await createPub(values) if (!res) throw new Error("something went wrong") toast({ title: "Successfully submitted:", description: values.title }) router.refresh() } catch (error) { toast({ title: "Oh dear... ", description: error.message }) } } function onErrors(errors) { toast({ title: "You have errors", description: (
					{JSON.stringify(errors, null, 2)}
				
), }) console.log(JSON.stringify(errors)) } const exampleTitle = randomPublicationTitle() const exampleUrl = "www." + exampleTitle.replace(/ /g, '') .toLowerCase() + ".com" return (
( Title )} /> ( Website )} />
( Query after (days) )} />
) }