diff --git a/src/app/_components/App.tsx b/src/app/_components/App.tsx new file mode 100644 index 0000000..7eca911 --- /dev/null +++ b/src/app/_components/App.tsx @@ -0,0 +1,15 @@ +import { Suspense } from "react"; +import CreateWine from "./CreateWine"; +import WineCards from "./WineCards"; + +export default function App() { + return ( +
+

Yes hello

+ Loading....

}> + + +
+
+ ); +} diff --git a/src/app/_components/CreateWine.tsx b/src/app/_components/CreateWine.tsx index dca23e7..afbb541 100644 --- a/src/app/_components/CreateWine.tsx +++ b/src/app/_components/CreateWine.tsx @@ -1,54 +1,36 @@ -"use client"; -import { ChangeEvent, FormEvent, useEffect, useState } from "react"; -import { addWine } from "../../server/actions/addWine"; -import { getProducers } from "../../server/actions/allProducers"; -import { Producer } from "~/types/types"; +import { addWine } from "~/server/actions/addWine"; +import { getProducers } from "~/server/actions/allProducers"; + +type Wine = { + name: string; + 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 [name, setName] = useState(""); - const [producer, setProducer] = useState(""); - const [allProducers, setAllProducers] = useState([]); - - useEffect(() => { - const fetchProducers = async () => { - try { - const producers = await getProducers(); - setAllProducers(producers); - } catch (error) { - console.error("Failed to fetch producers:", error); - } - }; - fetchProducers(); - }, []); - - const handleName = (event: ChangeEvent) => { - setName(event.target.value); - }; - const handleProducer = (event: ChangeEvent) => { - setProducer(event.target.value); - }; - const handleAdd = async (event: FormEvent) => { - event.preventDefault(); - console.log(producer); - addWine(producer, name); - setName(""); - }; return (
- - - +
+ + + +
); } diff --git a/src/app/page.tsx b/src/app/page.tsx index 9e52930..1fd1db5 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,19 +1,14 @@ import { Suspense } from "react"; import CreateWine from "./_components/CreateWine"; import WineCards from "./_components/WineCards"; +import App from "./_components/App"; export const dynamic = "force-dynamic"; export default async function HomePage() { return (
-
-

Yes hello

- Loading....

}> - - -
-
+
); } diff --git a/src/server/actions/addWine.ts b/src/server/actions/addWine.ts index 0fa1113..630f139 100644 --- a/src/server/actions/addWine.ts +++ b/src/server/actions/addWine.ts @@ -2,7 +2,13 @@ import { db } from '../db/index' import { wines } from '../db/schema' -export const addWine = async (producer: string, name: string) => { +type wine = { + name: string; + producer: string; +} + +export const addWine = async (wine: wine) => { + const { name, producer } = wine; await db.insert(wines).values({ producer: producer, name: name,