diff --git a/client/src/main.tsx b/client/src/main.tsx index 20b3129..5a59a83 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -1,3 +1,4 @@ + import * as React from 'react' import * as ReactDOM from 'react-dom/client' import { createBrowserRouter, RouterProvider } from 'react-router-dom' @@ -11,6 +12,7 @@ import Events from './pages/Events' import SignUp from './pages/SignUp' import Gallery from './pages/Gallery' import Team from "./pages/Team"; +import Contact from "./pages/Contact"; {/* project team imports */} import Pruna from "./pages/project-team/Pruna" @@ -25,12 +27,15 @@ const router = createBrowserRouter([ path: "/", element: , children: [ + { index: true, element: }, { path: 'events', element: }, { path: 'project-team', element: }, { path: 'sign-up', element: }, { path: 'gallery', element: }, + { path: "contact", element: }, + { path: 'alanna', element: }, { path: 'tadiwa', element: }, diff --git a/client/src/pages/Contact.tsx b/client/src/pages/Contact.tsx new file mode 100644 index 0000000..a592dc5 --- /dev/null +++ b/client/src/pages/Contact.tsx @@ -0,0 +1,91 @@ +import { useState } from "react"; +import { FaInstagram, FaFacebook, FaEnvelope } from "react-icons/fa"; + +export default function Contact() { + const [formData, setFormData] = useState({ name: "", email: "", message: "" }); + const [ status, setStatus ] = useState(""); + + const handleSubmit = async () => { + setStatus("Sending"); + const res = await fetch("https://formspree.io/f/xvzlqwkg", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(formData) + }); + if (res.ok) { + setStatus("Message sent!"); + setFormData({ name: "", email: "", message: "" }); + } else { + setStatus("Error sending message."); + } + }; + return ( + <> +
+

Contact us

+

+ Have questions or want to get in touch? We'd love to hear from you! +

+

+ Fill out the form below or reach out to us on social media. We look forward to connecting with you! (。˃ ᵕ ˂ )⸝♡ +

+
+ +
+ setFormData({ ...formData, name: e.target.value })} + className="bg-transparent border-2 border-blue rounded-2xl px-6 py-4 text-white placeholder-gray-400 outline-none focus:border-blue-300 transition" + /> + setFormData({ ...formData, email: e.target.value })} + className="bg-transparent border-2 border-blue rounded-2xl px-6 py-4 text-white placeholder-gray-400 outline-none focus:border-blue-300 transition" + /> +