From 91c0073f233edbdabddeece2912c05b27bf3a5f7 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 15 Apr 2026 01:16:10 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B5=AC=EB=A7=A4=20=EC=8B=A0=EC=B2=AD?= =?UTF-8?q?=20=EB=AA=A8=EB=8B=AC=EC=97=90=20=EC=9D=B4=EB=A6=84=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80=20(=EC=9E=85=EA=B8=88=EC=9E=90?= =?UTF-8?q?=EB=AA=85=20=EB=A7=A4=EC=B9=AD=EC=9A=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 이메일 로컬파트 대신 사용자 입력 이름을 /api/contact name 필드 및 메시지 본문에 포함 — 입금 확인 시 계좌이체 입금자명과 대조 용이. Co-Authored-By: Claude Opus 4.6 --- app/components/PurchaseAgreementModal.tsx | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/app/components/PurchaseAgreementModal.tsx b/app/components/PurchaseAgreementModal.tsx index 77ccfc9..3225609 100644 --- a/app/components/PurchaseAgreementModal.tsx +++ b/app/components/PurchaseAgreementModal.tsx @@ -29,6 +29,7 @@ export default function PurchaseAgreementModal({ bankInfo = DEFAULT_BANK, }: Props) { const [agreed, setAgreed] = useState(false); + const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [sent, setSent] = useState(false); const [loading, setLoading] = useState(false); @@ -36,6 +37,7 @@ export default function PurchaseAgreementModal({ useEffect(() => { if (!isOpen) { setAgreed(false); + setName(''); setEmail(''); setSent(false); } @@ -44,7 +46,7 @@ export default function PurchaseAgreementModal({ if (!isOpen) return null; const handleSubmit = async () => { - if (!agreed || !email) return; + if (!agreed || !email || !name.trim()) return; setLoading(true); try { await fetch('/api/contact', { @@ -52,10 +54,10 @@ export default function PurchaseAgreementModal({ headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ service: `구매 신청: ${productName}`, - name: email.split('@')[0], + name: name.trim(), email, phone: '', - message: `상품: ${productName} (${price})\n입금 대기 중. 입금 확인 후 이메일로 상품 전달 예정.`, + message: `상품: ${productName} (${price})\n입금자명: ${name.trim()}\n입금 대기 중. 입금 확인 후 이메일로 상품 전달 예정.`, }), }); setSent(true); @@ -103,6 +105,19 @@ export default function PurchaseAgreementModal({ ) : (
+
+ + setName(e.target.value)} + placeholder="홍길동" + className="w-full px-4 py-3 border border-slate-300 rounded-xl text-sm focus:outline-none focus:border-violet-500" + /> +
+