'use client'; import { useState } from 'react'; import type { SurveyResponse } from '@/lib/survey/types'; import QuestionLayout from './QuestionLayout'; interface Props { initial: Partial; onPrev: () => void; onSubmit: (partial: Partial) => void; submitting: boolean; } export default function Q7Step({ initial, onPrev, onSubmit, submitting }: Props) { const [wantEmail, setWantEmail] = useState<'yes' | 'no' | ''>( initial.email ? 'yes' : '' ); const [email, setEmail] = useState(initial.email ?? ''); // 'no' 선택 시 즉시 전송 가능. 'yes' 선택 시 이메일 유효성 필요. const emailValid = /\S+@\S+\.\S+/.test(email); const canSubmit = wantEmail === 'no' || (wantEmail === 'yes' && emailValid); function handleSubmit() { onSubmit({ email: wantEmail === 'yes' && emailValid ? email.trim() : undefined, }); } return (
{wantEmail === 'yes' && ( setEmail(e.target.value)} placeholder="your@email.com" maxLength={200} className="w-full px-4 py-3 rounded-xl bg-white/[0.04] border border-white/15 text-white placeholder:text-white/30 focus:border-white/40 focus:outline-none" /> )}
); }