From 067c31d745545d9dc3e0b8bc63eac2cac5b80c96 Mon Sep 17 00:00:00 2001 From: christian Date: Sun, 2 Jun 2024 11:41:55 +0200 Subject: [PATCH] fixing forms --- .../_components/admin/CreateCountryForm.tsx | 18 +++----- .../_components/admin/CreateRegionForm.tsx | 7 ++- src/server/actions/addCountry.ts | 46 +++++++++++++++---- src/server/actions/addRegion.ts | 17 ++++--- 4 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/app/_components/admin/CreateCountryForm.tsx b/src/app/_components/admin/CreateCountryForm.tsx index bd79a74..45ab5bf 100644 --- a/src/app/_components/admin/CreateCountryForm.tsx +++ b/src/app/_components/admin/CreateCountryForm.tsx @@ -2,22 +2,16 @@ import { Input } from "~/components/ui/input"; import { addCountry } from "~/server/actions/addCountry"; import SubmitButton from "../SubmitButton"; -import { useRef } from "react"; - -const initialState = { - name: "" as string, -}; +import { useFormState } from "react-dom"; export default function CreateCountryForm() { - const ref = useRef(null); - const handleSubmit = async (formData: FormData) => { - ref.current?.reset(); - await addCountry(formData); - }; + const [state, formAction] = useFormState(addCountry, null); + return ( -
- + + + {state?.message} ); } diff --git a/src/app/_components/admin/CreateRegionForm.tsx b/src/app/_components/admin/CreateRegionForm.tsx index 4951d7b..2c3ba9b 100644 --- a/src/app/_components/admin/CreateRegionForm.tsx +++ b/src/app/_components/admin/CreateRegionForm.tsx @@ -1,7 +1,7 @@ "use client"; import { Input } from "~/components/ui/input"; import SubmitButton from "../SubmitButton"; -import { useRef } from "react"; +import { useActionState } from "react"; import { addRegion } from "~/server/actions/addRegion"; import { Select, @@ -20,10 +20,9 @@ interface Country { export default function CreateRegionForm(props: { countries: Country[] }) { const [state, formAction] = useFormState(addRegion, null); const { countries } = props; - const ref = useRef(null); return ( -
- + +