+ {/* 아이콘 + 제목 */}
+
+
+
+ mark_email_read
+
+
+
이메일 인증
+
+
+ 가입하신 이메일로 전송된 인증 코드 6자리를 입력해주세요.
+
+
+
+
+ info
+
+ 인증 코드는 발송 후 5분간 유효합니다.
+
+
+
+ {/* 코드 입력 */}
+
+
+
+ {code.map((digit, i) => (
+ {
+ inputRefs.current[i] = el;
+ }}
+ type="text"
+ inputMode="numeric"
+ autoComplete={i === 0 ? "one-time-code" : "off"}
+ maxLength={1}
+ value={digit}
+ onChange={(e) => handleInput(i, e.target.value)}
+ onFocus={() => handleFocus(i)}
+ onKeyDown={(e) => handleKeyDown(i, e)}
+ onPaste={i === 0 ? handlePaste : undefined}
+ className={`h-14 w-full rounded-lg border bg-white text-center font-sans text-2xl font-bold tracking-widest text-gray-900 transition-all focus:border-transparent focus:outline-none focus:ring-2 focus:ring-primary ${
+ codeError
+ ? "border-red-500 shadow-[0_0_0_2px_rgba(239,68,68,0.15)]"
+ : "border-gray-300"
+ } ${shakeCode ? "animate-shake" : ""}`}
+ />
+ ))}
+
+ {codeError && (
+
+
+ error
+
+ {codeError}
+
+ )}
+
+
+ {/* 인증하기 버튼 */}
+
+
+
+
+ {/* 재전송 */}
+
+
+ 메일을 받지 못하셨나요?
+
+
+ {resendCooldown > 0 && (
+
+ {resendCooldown}초 후 재전송 가능
+
+ )}
+
+