'use client' import styles from '~/styles/form.module.css' const submitUrl = 'https://contact.tempest.dev/api/contact/me' import { useState, useRef, FormEvent } from 'react' export default function ContactForm() { const [submitting, setSubmitting] = useState(false) const [status, setStatus] = useState('') const nameRef = useRef() const emailRef = useRef() const messageRef = useRef() const submit = async (ev: FormEvent) => { ev.preventDefault() setStatus('') const name = nameRef.current.value const email = emailRef.current.value const message = messageRef.current.value if (!name) setStatus(s => s + ' Name required.') if (!email) setStatus(s => s + ' Email required.') if (!message) setStatus(s => s + ' Message required.') if (!name || !email || !message) return setSubmitting(true) try { await fetch(submitUrl, { method: 'post', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ name, email, message }) }) setStatus('Message sent successfully') } catch { setStatus('Error submitting message, please try again') } finally { setSubmitting(false) } } return (