diff --git a/server/notes.db b/server/notes.db index 9fb91df..3907916 100644 Binary files a/server/notes.db and b/server/notes.db differ diff --git a/src/components/CreateNoteForm.jsx b/src/components/CreateNoteForm.jsx index ffb1252..4846c26 100644 --- a/src/components/CreateNoteForm.jsx +++ b/src/components/CreateNoteForm.jsx @@ -1,25 +1,98 @@ // TODO: Import useForm, zodResolver, axios, useNavigate, useState, and noteSchema +import {useForm} from "react-hook-form" +import axios from "axios" +import {zodResolver} from "@hookform/resolvers/zod" +import { useState } from "react"; +import {noteSchema} from "../schema/notes" +import {useNavigate} from "react-router-dom" + + + + import { Save } from "lucide-react"; const CreateNoteForm = () => { + + + // TODO: Setup isSubmitting state with useState + + const [isSubmitting, setIsSubmitting] = useState(false) // TODO: create navigate variable and set to useNavigate() + const navigate = useNavigate () + // TODO: Set up the form with useForm from react-hook-form and zodResolver from @hookform/resolvers/zod + const { + register, + handleSubmit, + formState: {errors}, + reset} = useForm ({ + resolver: zodResolver(noteSchema), + + defaultValues: {title: "", content: ""} + }) + const sendToTheServer = async (data) => { // TODO: Send the data to the server + setIsSubmitting(true) + try { + await axios.post("http://localhost:3001/api/notes", data, + + {headers: { + "content-type": "application/json" + }} + ) + + reset() + setTimeout (() => { + navigate("/notes") + }, 3000) + + + }catch(err) { + console.log(err) + + }finally { + setIsSubmitting(false) + } + + // TODO: Use axios to create a new note in the server using the endpoint http://localhost:3001/api/notes + + }; return ( - <> -