-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[최제원] Sprint4 #155
The head ref may contain hidden characters: "Basic-\uCD5C\uC81C\uC6D0-sprint4"
[최제원] Sprint4 #155
Conversation
…ithub-actions [Fix] delete merged branch github action
…sprint1-refactor2 [최제원] Sprint1
* div태그 대신 header 태그로 변경 및 logo-img에 대한 a태그 추가 * 이미지 파일구조 수정 및 파일구조 수정에 따른 이미지들의 src 수정 * login.html form태그와 label태그로 변경 및 비밀번호 가림 이미지 추가와 그에 맞는 css 적용 * signup.html form태그와 label태그로 변경 및 비밀번호 가림 이미지 추가와 그에 맞는 css 적용
* 메인 홈페이지 반응형 웹으로 변경함으로써 CSS 수정 및 변경 * login 홈페이지와 signup 홈페이지를 반응형 웹으로 변경함으로써 CSS 수정 및 변경
안녕하세요 멘토님 ! 작업을 하다보니 반복되는 함수(로직)이 눈에 들어와 분리하는 작업을 시도해보려고 하는데 괜찮을까요..? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!
if ( | ||
emailErrorMessage.textContent === "" && | ||
passwordErrorMessage.textContent === "" | ||
) { | ||
loginButton.disabled = false; | ||
loginButton.style.backgroundColor = "#3692ff"; | ||
} else { | ||
loginButton.disabled = true; | ||
loginButton.style.backgroundColor = "#9ca3af"; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
각각의 조건을 변수로 등록하고 활용하면 좀더 가독성이 좋을것 같네요 ㅎ
const isEmailValid = emailErrorMessage.textContent === "";
const isPasswordValid = passwordErrorMessage.textContent === "";
const isEnabled = isEmailValid && isPasswordValid;
loginButton.disabled = !isEnabled;
loginButton.style.backgroundColor = isEnabled ? "#3692ff" : "#9ca3af";
emailErrorMessage.style.display = "block"; | ||
inputEmail.classList.add("error"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
위 구문이 지금 지속적으로 반복되는데
// 에러 메시지 표시 및 입력 필드 스타일 변경 함수
function showError(inputElement, errorElement, message) {
errorElement.textContent = message;
errorElement.style.display = "block";
inputElement.classList.add("error");
}
// 에러 메시지 숨기고 입력 필드 스타일 복원하는 함수
function hideError(inputElement, errorElement) {
errorElement.textContent = "";
errorElement.style.display = "none";
inputElement.classList.remove("error");
}
이렇게 별도의 함수로 빼는게 어때요?
if (!emailValue) { | ||
emailErrorMessage.textContent = "이메일을 입력해주세요."; | ||
emailErrorMessage.style.display = "block"; | ||
inputEmail.classList.add("error"); | ||
} else if (!emailRegex.test(emailValue)) { | ||
emailErrorMessage.textContent = "잘못된 이메일 형식입니다."; | ||
emailErrorMessage.style.display = "block"; | ||
inputEmail.classList.add("error"); | ||
} else { | ||
emailErrorMessage.textContent = ""; | ||
emailErrorMessage.style.display = "block"; | ||
inputEmail.classList.remove("error"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
최종적으로는
if (!emailValue) {
showError(inputEmail, emailErrorMessage, "이메일을 입력해주세요.");
} else if (!emailRegex.test(emailValue)) {
showError(inputEmail, emailErrorMessage, "잘못된 이메일 형식입니다.");
} else {
hideError(inputEmail, emailErrorMessage);
}
이렇게 쓰일 수 있게? ㅎ
if (!passwordValue) { | ||
passwordErrorMessage.textContent = "비밀번호를 입력해주세요."; | ||
passwordErrorMessage.style.display = "block"; | ||
inputPassword.classList.add("error"); | ||
} else if (passwordValue.length < 8) { | ||
passwordErrorMessage.textContent = "비밀번호를 8자이상 입력해주세요."; | ||
passwordErrorMessage.style.display = "block"; | ||
inputPassword.classList.add("error"); | ||
} else { | ||
passwordErrorMessage.textContent = ""; | ||
passwordErrorMessage.style.display = "none"; | ||
inputPassword.classList.remove("error"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요기도 마찬가지로
if (!passwordValue) {
showError(inputPassword, passwordErrorMessage, "비밀번호를 입력해주세요.");
} else if (passwordValue.length < 8) {
showError(inputPassword, passwordErrorMessage, "비밀번호를 8자 이상 입력해주세요.");
} else {
hideError(inputPassword, passwordErrorMessage);
}
요렇게 ㅎ
</div> | ||
<button type="submit" class="login-button">로그인</button> | ||
<button type="button" class="login-button">로그인</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
로그인 form 내부의 로그인 button의 타입이 button으로 바뀐 이유가 뭔가요? submit이 맞는거같은데 ㅎ
This reverts commit e46d37a.
* Revert "[최제원] Sprint4 (#155)" This reverts commit e46d37a. * react npm start 오류로 인한 npm install 및 react 개발환경 셋팅 * header 추가 및 GET 리퀘스트를 받아 itemList 정렬 * 클래스 이름 추가 및 CSS 추가 * 파일 구조 정리 및 상품 정렬 쿼리 생성 * 최신순, 인기순 드롭아웃 html 구현과 검색 input 기능 html 구현 * form 태그 내부에 있는 태그들의 css 추가 및 수정 * 스프린트 미션5 미완성으로 코드잇에서 제공한 스프린트 미션5 완성본을 표본으로 커밋 * addItemPage html과 css 추가 * 이미지 삭제 기능 추가
* Revert "[최제원] Sprint4 (#155)" This reverts commit e46d37a. * react npm start 오류로 인한 npm install 및 react 개발환경 셋팅 * header 추가 및 GET 리퀘스트를 받아 itemList 정렬 * 클래스 이름 추가 및 CSS 추가 * 파일 구조 정리 및 상품 정렬 쿼리 생성 * 최신순, 인기순 드롭아웃 html 구현과 검색 input 기능 html 구현 * form 태그 내부에 있는 태그들의 css 추가 및 수정 * 스프린트 미션5 미완성으로 코드잇에서 제공한 스프린트 미션5 완성본을 표본으로 커밋 * addItemPage html과 css 추가 * 이미지 삭제 기능 추가 * input 안에 들어가있는 value값 삭제 * sprint6 templete code copy and commit * 상품 상세페이지 html 추가 및 api 연결과 간단한 css 작업도중 git push * ItemDetailPage css 작업완료 * user information 추가 및 useNavigate를 이용하여 목록으로 돌아가기 기능 구현
요구사항
기본
로그인 홈페이지
회원가입 홈페이지
심화
주요 변경사항
스크린샷
멘토에게