import styles from "./signup.module.scss"; import { useState } from 'react'; const Signup = () => { const [userText, setUserText] = useState({ userId: '', userName: '', userBirthday: '', userMbnum: '', userPassword: '', userRePassword: '' }) const [errors, setErrors] = useState({ errorId: null, errorName: false, errorBirthday: false, errorMbnum: false, errorPassword: false, errorRePassword: false }) // id중복확인 여부 state const [overlapId, setOverlapId] = useState(false); const [preId, setPreId] = useState(""); //입력할때마다 state에 저장 const handleUserOnChange = (e) => { setUserText({ ...userText, [e.target.name]: e.target.value }) } //id(중복확인 체크, 형식 에러) const handleOnClickId = (e) => { if (userText.userId.length < 5) { e.preventDefault(); // e.stopPropagati//on(); setErrors({ ...errors, [e.target.name]: true }); if (overlapId === true) { setOverlapId(false); }; } else { e.preventDefault(); e.stopPropagation(); setErrors({ ...errors, [e.target.name]: false }); setOverlapId(true); } } //중복되었으면 중복확인 창 띄우는 여부를 state에 전달 // const handleOverlapIdError = (e) => { // e.preventDefault(); // setOverlapIdError(() => {if()}); // } //가입완료 누르면 콘솔창에 전달하려는 state 보여줌 const handleonSubmit = (e) => { e.preventDefault(); setPreId(()=> (userText.userId)); console.log(preId); if ((userText.userId.length < 5)) { setErrors(errors => ({ ...errors, errorId: true })); } else if((userText.userId.length >= 5) && (overlapId === true)){ if(preId !== userText.userId){ console.log(preId); setOverlapId(()=> (false)); } } else if(userText.userId >= 5){ setErrors(errors => ({ ...errors, errorId: false })); } console.log(preId); //별명 유효성 검사 if (userText.userName.length === 0) { setErrors(errors => ({ ...errors, errorName: true })) } else{ setErrors(errors => ({ ...errors, errorName: false })) } // 생일 유효성 검사 if (userText.userBirthday.length !== 6) { setErrors(errors => ({ ...errors, errorBirthday: true })) } else{ setErrors(errors => ({ ...errors, errorBirthday: false })) } // 휴대폰 유효성 검사 if (userText.userMbnum.length !== 11) { setErrors(errors => ({ ...errors, errorMbnum: true })) } else{ setErrors(errors => ({ ...errors, errorMbnum: false })) } // 비밀번호 유효성 검사 if (userText.userPassword.length !== 8) { setErrors(errors => ({ ...errors, errorPassword: true })) } else{ setErrors(errors => ({ ...errors, errorPassword: false })) } // 비밀번호 확인 유효성 검사 if (userText.userRePassword.length !== 8) { setErrors(errors => ({ ...errors, errorRePassword: true })) } else{ setErrors(errors => ({ ...errors, errorRePassword: false })) } if (overlapId && (errors.errorId === false) && (errors.errorName === false) && (errors.errorBirthday === false) && (errors.errorMbnum === false) && (errors.errorPassword === false) && (errors.errorRePassword === false)) { console.log(userText); setTimeout(()=>{console.log("회원가입을 완료했습니다.")},2000) } } return ( // 데이터 입력과 유효성 검사 후 보이는 경고창
{console.log("userText==", userText, errors, overlapId)}
회원가입
{(overlapId === false) && errors.errorId &&

5~10자리 사이로 입력해주세요.

} {overlapId && (errors.errorId === false) &&

아이디 중복이 확인되었습니다.

} {(errors.errorId === false) && (overlapId === false) &&

아이디 중복확인을 해주세요.

}
{errors.errorName &&

10자 이내로 입력해주세요.

}
{errors.errorBirthday &&

숫자 6자리를 입력해주세요.

}
{errors.errorMbnum &&

-없이 숫자 11자리를 입력해주세요.

}
{errors.errorPassword &&

8자리를 입력해주세요.

}
{errors.errorRePassword &&

비밀번호가 일치하지 않습니다.

}
가입하기
{/* 아이디 중복 확인 모달창 */}
) } export default Signup