'use client'; import { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import Navigation from '@/components/Navigation'; import Footer from '@/components/Footer'; export default function FeedbackPage() { const [formData, setFormData] = useState({ name: '', email: '', message: '', }); const [status, setStatus] = useState<'idle' | 'submitting' | 'success' | 'error'>('idle'); const [errorMessage, setErrorMessage] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setStatus('submitting'); setErrorMessage(''); const form = e.currentTarget; const data = new FormData(form); try { const response = await fetch(form.action, { method: form.method, body: data, headers: { 'Accept': 'application/json', }, }); if (response.ok) { setStatus('success'); setFormData({ name: '', email: '', message: '', }); form.reset(); // Reset success message after 5 seconds setTimeout(() => { setStatus('idle'); }, 5000); } else { const data = await response.json(); if (data.errors) { setErrorMessage(data.errors.map((error: { message: string }) => error.message).join(', ')); } else { setErrorMessage('Oops! There was a problem submitting your form.'); } setStatus('error'); } } catch (error) { setErrorMessage('Oops! There was a problem submitting your form.'); setStatus('error'); } }; const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); }; return (

Share Your Feedback

I value your thoughts and suggestions. Your feedback helps me improve my work and services.

{status === 'success' ? ( Thanks for your submission! Your feedback helps me improve my services. ) : (

Optional - but helpful if we need to follow up