-
Notifications
You must be signed in to change notification settings - Fork 4
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
전남대_12조_픽업셔틀_7-9주차 #77
Conversation
…feature/post-write-page
- 로그인 유무는 localStorage의 accessToken을 통해 확인 - 접근권한 체크는 localStorage의 grade를 통해 확인 - 접근권한은 해당 컴포넌트로 감싼곳에서 ProtectedRoute에 props로 requiredAuth 값을 배열형태로 제공하면 적용 - 접근권한을 따로 제공하지 않으면 로그인 유무만 판단한다고 생각하면 됨 - 로그인 + 접근권한을 둘 다 체크해야하는 곳에서는 로그인(1순위) - 접근권한(2순위)로 적용됨 - 로그인 x 인 경우에는 로그인 경고 메시지와 함께 로그인페이지로 이동 - 접근권한 x 인 경우에는 접근 거부 메시지와 함께 마이페이지로 이동(학생증 인증 권유)
- 현재는 임시 데이터로 저장하도록 구현 - 백엔드 API 연동이후 로그인 기능이 정상작동하면 accessToken, grade, username 저장하도록 변경 예정
[feat]: 공고 작성 페이지 버그 수정
[feat] : 로그인 로직 보완 & 로그인 및 접근권한 체크용 ProtectedRoute 컴포넌트 구현
[7주차] : 개발 사항 Merge(weekly-7 → develop)
…Team12_FE into feature/post-write-page
- development가 아닐 때만 msw import
- 추후 admin외에 더 추가할 때 handlers 폴더 아래에 생성 - public/mockServiceWorker는 기본 설정파일
- msw 라이브러리 사용 - 각 학생 컴포넌트에 user 정보 넘김 - 하위 컴포넌트인 AuthRequest.jsx에서 nickname 출력 - id에 따라 Link로 상세페이지 이동 가능
- 추후 params에 따라 데이터 fetch
[9주차] : 9주차 개발 코드 Merge
[9주차] : 개발 사항 Merge(weekly-9 → develop)
[9주차] : 개발 사항 Merge(develop → master)
/* eslint-disable */ | ||
const Info = ({ response }) => { | ||
// 마감시간 | ||
let finishTime = new Date(response.finishedAt); |
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 showMenu = (item) => { | ||
return item.map(({ name }) => { | ||
return <div key={name}>{name}</div>; | ||
}); | ||
}; |
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.
컴포넌트 안에 종속되지 않는다면 바깥으로 빼주세요
// 사실상 user 권한의 경우는 로그인 토큰 자체만으로도 검증이 가능하기 때문에, 별도로 requiredAuth prop을 넘겨줄 필요 없음 | ||
// [admin, student] 이렇게 넘겨줄 수도 있는 경우를 감안하여 다음과 같이 처리 | ||
// requiredAuth 중 하나라도 만족하면, 페이지 접근 권한 유효함 | ||
const userAuth = localStorage.getItem('userAuth'); |
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.
userAuth에 대한 용도는 잘 파악이 안되지만 사용자 데이터를 저장하는것은 지양합니다.
@@ -0,0 +1,10 @@ | |||
const AuthDetail = ({ user }) => { |
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.
가끔 props를 다 뭉뚱그려서 하나로 퉁치는데 다 풀어서 작성부탁드려요
재사용성에서 제약사항이 생깁니다.
import { BsArrowDown } from 'react-icons/bs'; | ||
import { MdLocationPin, MdOutlineLocationOn } from 'react-icons/md'; | ||
|
||
const Location = ({ response }) => { |
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 Location = ({ response }) => { | |
const Location = ({ shopName, desination }) => { |
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.
이번 주도 수고하셨습니다.
다만 코드에서 종속성을 가지는 패턴들이 너무 많이 보입니다.
props를 response, user로 퉁 치는 경향이 있습니다. 이런 코드는 추후에 확장하기가 어렵습니다.
PR 타입(하나 이상의 PR 타입을 선택해주세요)
전달 사항
안녕하십니까 멘토님! 이번 7-9주차 개발 진행 사항을 모아 PR 드립니다!
이번주차 멘토링 사전질문 & 개발 내용과 관련된 질문은 멘토링 전까지 하단 링크에 별도로 정리해놓도록 하겠습니다😊
개발 마지막까지 최선을 다해 끝마쳐보도록 하겠습니다..!!(화이팅)
작업 사항
7주차 개발사항
ProtectedRoute.jsx
구현localStorage의 accessToken
을 통해 확인localStorage
의grade
를 통해 확인ProtectedRoute
에props
로requiredAuth
값을 배열형태로 제공하면 적용8주차 개발사항
유저 = 공고글 작성자
여부에 따라 공고상세페이지를 달리 보여주는 부분은 개발 진행중Admin, Student, Guest
페이지를 보여줄 수 있도록 분기 처리/components/organisms/AuthRequest.jsx
/pages/AdminPage.jsx
AdminPage
에서 데이터 불러오기 → 하위AuthRequest.jsx
에 뿌림/components/organisms/AuthDetail.jsx
/pages/AdminAuthPage.jsx
AdminAuthPage
에서 데이터 불러오기→ 하위AuthDetail.jsx
에 뿌림msw
로id
를params
로 불러오는 부분이 구현이 안됨PostWritePage.jsx
IIFE
로 분기input
에 에러메시지가 안뜨는 문제 발생 → 해결 중alert
창utils
로RegisterBankPage.jsx
BankForm.jsx
구현Swal
로 경고 alert 띄움mocks/data/
: 임시 데이터 넣어둠mocks/handlers/admin.js
: 관리자 페이지 관련 get 요청 정의mocks/handlers/index.js
: 핸들러 모아서 export / 추후 다른 핸들러가 더 생긴다면 추가 가능mocks/brower.js
:worker
정의9주차 개발 사항
AdminMyPageTemplate(관리자)
GuestMyPageTemplate(학생)
StudentMyPageTemplate(일반 유저, 학생증 인증 x 상태)
PickerMatchTemplate(사용자가 매칭완료된 글을 클릭)(자신의 글 x)
PickerNoMatchTemplate(사용자가 매칭전 공고글 클릭)(자신의 글 x)
WriterMatchTemplate(사용자가 매칭완료된 자신의 공고글을 클릭)
WriterNoMatchTemplate(사용자가 매칭전 자신의 공고글 클릭)
date.js
코드 수정console.log
제거lastpage : false
인 경우에 대해 렌더링 과정에서 버그가 있는데, 이는 API 연동을 통해 잡아야 할 것으로 보임useFormContext
를 사용하여props drilling
을 막으려고 함 (노력은 했는데 전이랑 똑같은 것 같기도..)msw
적용npm install @hookform/error-message
해주세요!)utils/dateAndTime.js
에 정의)constant
로 분리useMutation
적용useMutation
적용NaN
시간 렌더링 버그Swal
이 OK만 띄우는 버그div
가 아닌dijv
로 되어있던 부분 수정관련 PR