-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Feat] 주문서, 로딩, 결과 페이지 구현하기 #7
Conversation
@elfffffy 지금 lint가 안맞는거 같은데 그거 수정해서 다시 올려줄래? |
지금 충돌이 난다고 나와있을텐데,
Note merge conflict는 반드시 로컬 브랜치에서 해결한다. |
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.
Resolve
- 충돌 해결 완료 - 저번에 브랜치 삭제해서 복붙하고 pr 다시 열었었는데, 이런 방법도 있는지 몰랐네요..😥
- lint 오류 해결 완료
To Do
- 충돌 해결 노션에 정리하기
- 새로운 파일들 앞 pr에서 언급된 부분들(폰트 사이즈, 함수명, 폴더 정리 등) 참고해서 수정하고 리뷰 request하기
충돌 해결한거 확인했고 |
- useEffect 변경
- 중복된 코드 정리
PR에 💡0227 추가 변경사항💡내용 추가 및 내용 수정했습니다.요약하면 다음과 같습니다.
Order2에서 다중 선택 구현 + session storage 저장 때문에 시간이 좀 걸렸습니다.. |
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.
일단 크게 바꿔야 할 것은
전역 상태 관리를 할 때 상태관리 프레임워크를 사용하는 것이 프론트엔드의 기본이라는 점잉랴
그걸 위주로 바꿔주고, 변수 이름, 파일 이름 지을 때 더 고민을 해줬으면 좋겠어
나머지 자바스크립트 관련해서는 내가 계속 피드백 해줄테니까 배우면서 성장해 나가면 좋을 것 같음
상태관리 라이브러리를 적용하는데 엄청 오래 걸릴거고 엄청 어려울거야 하지만 너는 지금까지 잘 해왔으니까 기대하고 있을게 @elfffffy |
- 파일명 수정 - map 함수 index 추가 - redux 설치
- 재료 3개 초과해서 선택할 때 뜨는 알림창을 sweetalert 라이브러리를 이용했습니다. - redux 설치
💡0302 추가 변경사항💡
Summary
1. Redux란?
1) 설치npm install @reduxjs/toolkit react-redux 2) 주요 개념store
action
reducer
dispatch
2. Redux 적용 및 코드 수정
|
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.
리덕스 엄청 훌륭하게 썼는데? 리덕스가 react의 flux 패턴을 사용하는거라 이것도 한번 알아두면 좋을듯 https://velog.io/@bluecoolgod80/FLUX-%ED%8C%A8%ED%84%B4%EA%B3%BC-Redux
몇가지 물어볼게
그리고 이제 어떤 작업할지 이슈를 생성해주고 여기에 댓글 남겨줄래
@elfffffy
참고로 ai 이름 추천은 간단하게 붙일 수 있으니까 그건 후순위로 미뤄두자
그래서 정리하자면
이렇게 되겠습니다. 뭐가 괜찮을까요? #13 이슈 작성했습니다! |
3번방안이 제일 좋을듯? @elfffffy 리뷰는 퇴근하고.. 할게.. |
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.
일단 리뷰 다 했고, 버튼 삭제관련해서는 너가 이슈 따로 팠으니까 머지 할게
Summary
💡0227 추가 변경사항💡
PrevBtn.tsx
파일 생성 및 이전 버튼 활성화Description
1. Order 페이지를 구현했습니다.
1) Order 페이지에 공통적으로 들어가는 '주문서를 작성해세요' 타이틀과 '이전/다음' 버튼을 컴포넌트로 만들었습니다.
OrderTitle.tsx
Order1.tsx
PaginationBtn.tsx
NextBtn.tsx
PrevBtn.tsx
도 유사한 형태입니다.2) 선택지들은 똑같은 형식으로 이루어져 있습니다. 형식은 다음과 같습니다.
Order1.tsx
tempList
는 배열입니다.storageTemp
가 null이 아니라면, 사용자가 이미 값을 넣어 놓은 상태이므로 새로고침을 했을 때, 선택 css가 발동되도록 했습니다.onClickTemp
함수가 실행이 되고, 이때 선택한 버튼의 index를 함께 전달됩니다.index
를useState()
를 활용하여selectedTemp
의 값으로 바꿔줍니다.useEffect
를 통해 selectedTemp 값이 생기거나 변경될 때,storageTemp
을 변경합니다.3) 재료 선택 선택지는 다릅니다. (최대 3개 선택)
Order2.tsx
3-1) 버튼 이벤트에 관한 설명
selectedIngredient
의 값을 가져옵니다. 빈 배열일 수도 있습니다.isChecked
는 체크여부를 파악하는 상태입니다.alarm
은 4개 이상 선택 시 발생하는 알림창에 대한 boolean 값입니다.selectedIngredient
에 선택한 값이 있다면 체크가 취소되고, 없다면 체크가 되도록 만들었습니다.clickIngredient
함수를 실행하고, 이때e(event)
와btn.index
도 함께 넘어갑니다.btn.index
가value
입니다.false
였던isChecked
의 값을true
로 변환합니다.checkedIngredient
함수가 실행되고,value
와 이벤트의 체크 여부를 나타내는e.target.checked
도 넘어갑니다.selectedIngredient
값을 변경합니다.updateSelectedIngredient
을 반환합니다.selectedIngredient
가 3을 초과할 수 없습니다. 이때,useEffect()
를 사용해서 해결합니다.setSelectedIngredient(selectedIngredient.slice(0, 3));
배열에 3개까지만 담길 수 있도록 설정합니다. 그 이상을 담길 경우, 삭제됩니다.setAlarm(true);
을 통해 3개를 초과하면 경고 팝업창이 나타나도록 합니다.3-2) 버튼 css에 관한 설명
input
의 className에peer
를 설정하고,label
의 className에peer
를 설정하게 되면 형제관계가 됩니다. 즉,input
의 상태가 변함에 따라label
의 스타일을 바꿔줄 수 있습니다.2. Loading 페이지를 구현했습니다.
setTimeout
함수를 사용해 지정한 시간 후에 코드가 수행될 수 있도록 했습니다.Result.tsx
페이지로 넘어갑니다.startLoading
를 true로 바꿉니다.start
값의 변화에 따라 진행 바 애니메이션이 나타납니다.3. Result 페이지를 구현했습니다.
4. 기타사항
1) Order3.tsx AI