+
+
기부 의사 등록
+
+ ← 기부 소개로 돌아가기
+
+
+
+
+ {[1, 2, 3, 4, 5].map((n) => (
+
+ ))}
+
+
+ {/* STEP 1 */}
+ {step === 1 && (
+
+
+
+
+
+
+
+
+ 약관과 처리방침은{' '}
+
+ 은행 연동 안내
+
+ 에서 확인할 수 있습니다.
+
+
+
+ )}
+
+ {/* STEP 2 */}
+ {step === 2 && (
+
+
+
+
+
+
+ setAmountType(v as AmountType)}
+ className="grid gap-4 md:grid-cols-2"
+ >
+
+
+
+
+ {amountType === 'fixed' ? (
+
+
+
+
+ {PRESET_AMOUNTS.map((p) => (
+
+ ))}
+
+
+
{
+ const raw = e.target.value.replace(/[^0-9]/g, '');
+ setFixedAmount(String(clamp(Number(raw))));
+ }}
+ />
+
+
+
+
+ 팁: 버튼을 누를 때마다 금액이 누적됩니다.
+
+
+
+
+ 현재 금액: {fmt(toNum(fixedAmount))}
+
+
+ ) : (
+
+
+
setRatio(e.target.value.replace(/[^0-9]/g, ''))}
+ />
+
1–100 사이의 정수를 권장합니다.
+
+ )}
+
+
+ )}
+
+ {/* STEP 3 */}
+ {step === 3 && (
+
+
+
+
+
+
+
+ 실제 환경에서는 KB국민은행의 공식 연동 절차(로그인/전자서명)를 진행합니다.
+
+
+
+
+ {bankLinked && ✔ 연결되었습니다.}
+
+
+
+
+
+
+
+ {esignOpen && (
+
+
{
+ setSignatureDataUrl(dataUrl);
+ }}
+ />
+
+
+ {signatureDataUrl && (
+ <>
+

+
+ >
+ )}
+
+
+ )}
+
+
+ 자세한 절차는{' '}
+
+ 은행 연동 안내
+
+ 를 참고하세요.
+
+
+
+
+ )}
+
+ {/* STEP 4 */}
+ {step === 4 && (
+
+
+
+
+
+
+
+
+
+ setMemo(e.target.value)}
+ maxLength={120}
+ placeholder="예: ○○대학교 장학금, ○○병원 소아암센터 등"
+ className="
+ h-20 px-6
+ text-3xl md:text-4xl font-semibold tracking-tight leading-tight
+ placeholder:text-3xl md:placeholder:text-4xl placeholder:font-semibold placeholder:tracking-tight placeholder:leading-tight
+ "
+ />
+
+
+
+ )}
+
+ {/* STEP 5 */}
+ {step === 5 && (
+
+
+
+
+
+
+
요약
+
+ - 동의 여부: {agreed ? '동의함' : '미동의'}
+ -
+ 지정 방식:{' '}
+ {amountType === 'fixed'
+ ? `정액 ${Number(fixedAmount || 0).toLocaleString()}원`
+ : `비율 ${ratio || 0}%`}
+
+ -
+ 은행 연동: {bankLinked ? '완료' : '미완료'} ({sandboxMode ? '샌드박스' : '실거래'}
+ )
+
+ - 기부처: {destinations.length ? destinations.join(', ') : '선택 없음'}
+ - 메모: {memo || '미등록'}
+
+
+ 제출 후에도 생전에는 언제든 수정·철회가
+ 가능합니다.
+
+
+
+
+ )}
+
+
+
+
+ {step < maxStep ? (
+
+ ) : (
+
+ )}
+
+
+
+ );
+}
diff --git a/ssh/src/pages/Donation/sections/Features/Steps/index.tsx b/ssh/src/pages/Donation/sections/Features/Steps/index.tsx
index 6a448b9..41e8701 100644
--- a/ssh/src/pages/Donation/sections/Features/Steps/index.tsx
+++ b/ssh/src/pages/Donation/sections/Features/Steps/index.tsx
@@ -3,9 +3,6 @@ import { Button } from '@/components/ui/button';
import { ShieldCheck, Building2, HandCoins, FileSignature, ReceiptText } from 'lucide-react';
import { Link } from 'react-router-dom';
-const REGISTER_PATH = '/donation/register';
-const BANK_LINK_PATH = '/donation/banks';
-
type Step = {
title: string;
desc: string;
@@ -95,10 +92,11 @@ export default function Steps() {