'use client'; import { useState, useEffect, Suspense } from 'react'; import { useSearchParams } from 'next/navigation'; function ContactFormInner() { const searchParams = useSearchParams(); const [formData, setFormData] = useState({ name: '', phone: '', email: '', service: '외주 개발 문의', message: '', }); const [status, setStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); const [errorMessage, setErrorMessage] = useState(''); useEffect(() => { const serviceParam = searchParams.get('service'); if (serviceParam) { setFormData((prev) => ({ ...prev, service: serviceParam })); } }, [searchParams]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setStatus('loading'); setErrorMessage(''); try { const response = await fetch('/api/contact', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData), }); const data = await response.json(); if (!response.ok) throw new Error(data.error || '문의 전송에 실패했습니다.'); setStatus('success'); setFormData({ name: '', phone: '', email: '', service: '외주 개발 문의', message: '' }); setTimeout(() => setStatus('idle'), 5000); } catch (error) { setStatus('error'); setErrorMessage(error instanceof Error ? error.message : '문의 전송에 실패했습니다.'); } }; const handleChange = ( e: React.ChangeEvent ) => { setFormData((prev) => ({ ...prev, [e.target.name]: e.target.value })); }; return (