From f76e72db8084eaae2b81f49038332cad122a26a1 Mon Sep 17 00:00:00 2001 From: christian Date: Sat, 25 May 2024 07:29:02 +0200 Subject: [PATCH] implementing useActionState --- src/app/_components/CreateWine.tsx | 23 ++++++++++++----------- src/server/actions/addWine.ts | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/app/_components/CreateWine.tsx b/src/app/_components/CreateWine.tsx index afbb541..e437421 100644 --- a/src/app/_components/CreateWine.tsx +++ b/src/app/_components/CreateWine.tsx @@ -1,4 +1,5 @@ -import { addWine } from "~/server/actions/addWine"; +import { useActionState } from "react"; +import { InsertResult, addWine } from "~/server/actions/addWine"; import { getProducers } from "~/server/actions/allProducers"; type Wine = { @@ -6,21 +7,21 @@ type Wine = { producer: string; }; -async function submitWine(formData: FormData): Promise { - "use server"; - const wine: Wine = { - name: formData.get("name") as string, - producer: formData.get("producer") as string, - }; - - addWine(wine); -} const producers = await getProducers(); export default function CreateWine() { + const [formState, formAction] = useActionState(addWine, { + message: "", + errors: undefined, + fieldValues: { + name: "", + producer: "", + }, + }); + return (
-
+