diff --git a/src/components/auth/LoginForm.tsx b/src/components/auth/LoginForm.tsx index 6b39bf7..7cf95da 100644 --- a/src/components/auth/LoginForm.tsx +++ b/src/components/auth/LoginForm.tsx @@ -30,6 +30,16 @@ const LoginForm: React.FC = ({ setIsPinModalOpen, onCaptchaChange, }) => { + const isEmailValid = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test( + formData.email + ); + const isPasswordValid = formData.password.length >= 8; + const isFormValid = + isEmailValid && + isPasswordValid && + formData.email !== "" && + formData.password !== ""; + return (
@@ -94,7 +104,7 @@ const LoginForm: React.FC = ({ type="button" onClick={onAppLogin} className="w-[48%] bg-blue-600 text-white py-3 rounded hover:bg-blue-700 transition-colors disabled:bg-blue-300" - disabled={isLoading} + disabled={isLoading || !isFormValid} > {isLoading ? "처리중..." : "APP 간편인증 로그인"} @@ -104,7 +114,7 @@ const LoginForm: React.FC = ({ setIsPinModalOpen(true); }} className="w-[48%] bg-blue-600 text-white py-3 rounded hover:bg-blue-700 transition-colors disabled:bg-blue-300" - disabled={isLoading} + disabled={isLoading || !isFormValid} > {isLoading ? "처리중..." : "PIN 인증 로그인"}