66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
|
"use client";
|
||
|
|
||
|
import React from "react";
|
||
|
|
||
|
import submitContactForm from "../../functions/frontend/submitContactForm";
|
||
|
|
||
|
export default function ContactForm() {
|
||
|
let [success, setSuccess] = React.useState<string | null>(null);
|
||
|
let [loading, setLoading] = React.useState<boolean>(false);
|
||
|
|
||
|
return (
|
||
|
<form
|
||
|
autoComplete="on"
|
||
|
onSubmit={(e: any) => {
|
||
|
submitContactForm(e, setSuccess, setLoading);
|
||
|
}}
|
||
|
>
|
||
|
{loading && <div className="flex items-center justify-center w-full h-full absolute top-0 left-0 bg-[black]/90">Sending Mail...</div>}
|
||
|
<input
|
||
|
type="text"
|
||
|
placeholder="Your Name"
|
||
|
autoComplete="name"
|
||
|
required
|
||
|
/>
|
||
|
<input
|
||
|
type="email"
|
||
|
placeholder="Your Email Address"
|
||
|
autoComplete="email"
|
||
|
required
|
||
|
/>
|
||
|
<textarea
|
||
|
name="message"
|
||
|
id="contact-form-message"
|
||
|
cols={30}
|
||
|
rows={10}
|
||
|
placeholder="Message"
|
||
|
></textarea>
|
||
|
<button type="submit">Submit</button>
|
||
|
{success === "Success" && (
|
||
|
<div className="message-response">
|
||
|
Success!!!{" "}
|
||
|
<button
|
||
|
onClick={() => {
|
||
|
window.location.reload();
|
||
|
}}
|
||
|
>
|
||
|
Reload
|
||
|
</button>
|
||
|
</div>
|
||
|
)}
|
||
|
{success === "Failed" && (
|
||
|
<div className="message-response failed">
|
||
|
Failed{" "}
|
||
|
<button
|
||
|
onClick={() => {
|
||
|
window.location.reload();
|
||
|
}}
|
||
|
>
|
||
|
Reload
|
||
|
</button>
|
||
|
</div>
|
||
|
)}
|
||
|
</form>
|
||
|
);
|
||
|
}
|