diff --git a/src/app/_components/AllCountries.tsx b/src/app/_components/AllCountries.tsx index 437c0d6..24010ec 100644 --- a/src/app/_components/AllCountries.tsx +++ b/src/app/_components/AllCountries.tsx @@ -1,3 +1,4 @@ +import { deleteCountry } from "~/server/actions/deleteCountry"; import { db } from "~/server/db"; export default async function AllCountries() { @@ -6,7 +7,12 @@ export default async function AllCountries() {

All Countries:

{countries.map((country) => ( -

{country.name}

+
+

{country.name}

+
+ +
+
))}
); diff --git a/src/app/_components/WineList.tsx b/src/app/_components/WineList.tsx index 1abab89..b0b9c06 100644 --- a/src/app/_components/WineList.tsx +++ b/src/app/_components/WineList.tsx @@ -1,17 +1,17 @@ "use server"; +import { deleteCountry } from "~/server/actions/deleteCountry"; import { db } from "~/server/db"; -import WineName from "./WineName"; export default async function WineList() { const wines = await db.query.wines.findMany(); return (

All wines:

- {wines && wines.length > 0 ? ( + {wines ? ( <> diff --git a/src/app/_components/WineName.tsx b/src/app/_components/WineName.tsx deleted file mode 100644 index 44a0043..0000000 --- a/src/app/_components/WineName.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export default function WineName(props: { name: string }) { - const { name } = props; - return

{name}

; -} diff --git a/src/app/_components/admin/CreateCountryForm.tsx b/src/app/_components/admin/CreateCountryForm.tsx index 1b784ef..f87a4d7 100644 --- a/src/app/_components/admin/CreateCountryForm.tsx +++ b/src/app/_components/admin/CreateCountryForm.tsx @@ -1,7 +1,8 @@ +"use client"; import { Input } from "~/components/ui/input"; import { addCountry } from "~/server/actions/createCountry"; import SubmitButton from "../SubmitButton"; -import { useActionState, useRef } from "react"; +import { useRef } from "react"; const initialState = { name: "" as string, diff --git a/src/server/actions/createCountry.ts b/src/server/actions/createCountry.ts index 5e38297..ba19122 100644 --- a/src/server/actions/createCountry.ts +++ b/src/server/actions/createCountry.ts @@ -9,7 +9,6 @@ type NewCountry = { }; export const addCountry = async (formData: FormData) => { - "use server"; const newCountry: NewCountry = { name: (formData.get("name") as string).toLowerCase(), }; diff --git a/src/server/actions/deleteCountry.ts b/src/server/actions/deleteCountry.ts new file mode 100644 index 0000000..1e5d7fe --- /dev/null +++ b/src/server/actions/deleteCountry.ts @@ -0,0 +1,11 @@ +"use server"; + +import { eq } from "drizzle-orm"; +import { db } from "../db"; +import { countries } from "../db/schema"; +import { revalidatePath } from "next/cache"; + +export async function deleteCountry(id: string) { + await db.delete(countries).where(eq(countries.id, id)); + revalidatePath("/"); +}