Skip to content
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 #62

Conversation

mulddang2
Copy link
Collaborator

요구사항

기본

로그인

  • 이메일 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “이메일을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 이메일 input에서 focus out 할 때, 이메일 형식에 맞지 않는 경우 input에 빨강색 테두리와 아래에 “잘못된 이메일 형식입니다” 빨강색 에러 메세지를 보입니다.
  • 비밀번호 input에서 focus out 할 때, 값이 없을 경우 아래에 “비밀번호를 입력해주세요.” 에러 메세지를 보입니다
  • 비밀번호 input에서 focus out 할 때, 값이 8자 미만일 경우 아래에 “비밀번호를 8자 이상 입력해주세요.” 에러 메세지를 보입니다.
  • input 에 빈 값이 있거나 에러 메세지가 있으면 ‘로그인’ 버튼은 비활성화 됩니다.
  • input 에 유효한 값을 입력하면 ‘로그인' 버튼이 활성화 됩니다.
  • 활성화된 ‘로그인’ 버튼을 누르면 “/items” 로 이동합니다

회원가입

  • 이메일 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “이메일을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 이메일 input에서 focus out 할 때, 이메일 형식에 맞지 않는 경우 input에 빨강색 테두리와 아래에 “잘못된 이메일 형식입니다” 빨강색 에러 메세지를 보입니다.
  • 닉네임 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “닉네임을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 비밀번호 input에서 focus out 할 때, 값이 없을 경우 아래에 “비밀번호를 입력해주세요.” 에러 메세지를 보입니다
  • 비밀번호 input에서 focus out 할 때, 값이 8자 미만일 경우 아래에 “비밀번호를 8자 이상 입력해주세요.” 에러 메세지를 보입니다.
  • 비밀번호 input과 비밀번호 확인 input의 값이 다른 경우, 비밀번호 확인 input 아래에 “비밀번호가 일치하지 않습니다..” 에러 메세지를 보입니다.
  • input 에 빈 값이 있거나 에러 메세지가 있으면 ‘회원가입’ 버튼은 비활성화 됩니다.
  • input 에 유효한 값을 입력하면 ‘회원가입' 버튼이 활성화 됩니다.
  • 활성화된 ‘회원가입’ 버튼을 누르면 “/signup” 로 이동합니다

심화

  • 눈 모양 아이콘 클릭시 비밀번호의 문자열이 보이기도 하고, 가려지기도 합니다.
  • 비밀번호의 문자열이 가려질 때는 눈 모양 아이콘에는 사선이 그어져있고, 비밀번호의 문자열이 보일 때는 사선이 없는 눈 모양 아이콘이 보이도록 합니다.

주요 변경사항

  • sprint misson 3 리펙토링
  • 로그인 페이지 유효성 검사 추가

스크린샷

image

멘토에게

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@mulddang2 mulddang2 requested a review from JaeSang1998 August 31, 2024 09:07
@mulddang2 mulddang2 added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Aug 31, 2024
Copy link
Collaborator

@JaeSang1998 JaeSang1998 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수지님 고생하셨습니다! 다음번엔 완성을 목표로!

@@ -0,0 +1,126 @@
document.addEventListener('DOMContentLoaded', function () {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

너무 잘해주셨네요 :)

function handleEnterKey(event) {
if (event.key === 'Enter' || event.code === 'NumpadEnter') {
if (event.target === emailInput) {
handleEmailBlur(); // 이메일 유효성 검사 수행
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

handleEmailBlur 라는 이름 보다는 validateEmail 등의 함수 이름이 더 적절해보입니다!

password도 마찬가지구요.

errorElement.style.display = 'none';
}

function toggleLoginButton() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

toggleLoginButton 안에서 단순 toggle 을 해주는 것 뿐만아니라 validation까지 관리하고 있습니다.

지금은 작은 함수여서 괜찮으나 규모가 커진다면 validate 함수가 파편화되어 유지보수하기 힘들어질 수 있습니다.

updateLoginButtonStatus 정도의 이름으로 함수를 변경하고 안에서는 작은 함수로 쪼개어진 validate 함수를 호출해서 사용하거나, 혹은 toggleLoginButton 의 이름에 맞추어서 toggle만 하게 하는 좀 더 가벼운 함수로 변경하고, 함수를 호출하는 곳에서 적절한 조건에 맞게 toggle 을 해주는형태로 변경해보는것도 좋아보여요!

@@ -56,6 +56,15 @@ main {
display: none;
}

.login__password-toggle-icon--inactive.visible,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bem 규칙으로 네이밍 해주셨군요! 아주 보기 좋습니다

@@ -3,9 +3,21 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>판다마켓</title>
<meta property="og:title" content="판다 마켓" />
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seo 정보들도 잘 넣어주셨군요 :) 좋습니다

}

function handlePasswordBlur() {
const passwordValue = passwordInput.value.trim();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기 부분은

const {value} = passwordInput;
if(value.trim()==="") { ... }

이러헥 썼으면 조금 더 깔끔했을 것 같아요!

}

function toggleLoginButton() {
const isEmailValid =
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

boolean 을 따로 이름지어서 선언해주시는 습관 매우 좋습니다.

@JaeSang1998 JaeSang1998 merged commit 5fbc820 into codeit-bootcamp-frontend:Basic-이수지 Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다..
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants