import React, {useEffect, useState} from "react"; import {sendEmail} from "@/app/utils/send-email"; export type FormData = { name: string; email: string; message: string; } export default function Contact() { const [isVisible, setIsVisible] = useState(false); const [banner, setBanner] = useState<{ show: boolean, message: string, type: 'success' | 'error' }>({ show: false, message: '', type: 'success' }); useEffect(() => { setTimeout(() => { setIsVisible(true); }, 350); // Delay to start the animation after Projects }, []); async function onSubmit(e: React.FormEvent) { e.preventDefault(); const form = e.currentTarget; const data: FormData = { name: (form.elements.namedItem('name') as HTMLInputElement).value, email: (form.elements.namedItem('email') as HTMLInputElement).value, message: (form.elements.namedItem('message') as HTMLTextAreaElement).value, }; const response = await sendEmail(data); if (response.success) { form.reset(); } setBanner({show: true, message: response.message, type: response.success ? 'success' : 'error'}); setTimeout(() => { setBanner({...banner, show: false}); }, 3000); // Hide banner after 3 seconds } return (

Contact Me

{banner.show && (
{banner.message}
)}
); }