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

[김보민] week15 #481

Conversation

bomin0830
Copy link
Collaborator

@bomin0830 bomin0830 commented May 26, 2024

요구사항

vercel배포 주소:

기본

  • 링크 공유 페이지의 url path를 ‘/shared/{folderId}’로 변경하고, {folderId}에 해당하는 폴더 데이터가 화면에 보이게 해주세요.
  • 폴더 페이지의 url path를 전체 링크를 보는 경우 ‘/folder’로, 특정 폴더를 보는 경우 ‘/folder/{folderId}’로 변경하고, {folderId}에 해당하는 폴더 데이터가 화면에 보이게 해주세요.
  • https://bootcamp-api.codeit.kr/docs 에서 인증이 필요한(자물쇠 아이콘이 있음) api의 경우 Authorization 리퀘스트 헤더에 “Bearer {accessToken}”을 함께 보내야 합니다.

심화

  • 리퀘스트 헤더에 인증 토큰을 첨부할 때 axios interceptors를 활용해 주세요. (axios를 사용하지 않는다면 이와 유사한 기능을 활용해 주세요.)

주요 변경사항

스크린샷

image

멘토에게

  • shared페이지 작업중입니다.
  • folder페이지 데이터 로딩 시간이 많이 걸리는 원인을 모르겠습니다...

@bomin0830 bomin0830 requested a review from o-seung-yeon May 26, 2024 17:23
@bomin0830 bomin0830 added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels May 26, 2024
Copy link
Collaborator

@o-seung-yeon o-seung-yeon left a comment

Choose a reason for hiding this comment

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

folder페이지 데이터 로딩 시간이 많이 걸리는 원인을 모르겠습니다...
링크 리스트를 표시하는 부분에 ErrorComponent 가 오래 표시된다는 뜻일까요??
그거라면 linksByQuery 를 불러오는 걸 봤을 때 folders 를 불러오고 links 를 불러오도록 동기 처리되어 그런거 아닐까 유추해봅니당.
로딩이 오래걸리는 걸 어떤 걸 보고 판단했는지, ui 라면 렌더링하는 조건은 뭔지, 그 값을 어떻게 가져오는 지 등을 살펴볼 수 있을 것 같습니다.

고생하셨습니다 👏


function FolderPage() {
const [linksByQuery, setLinksByQuery] = useState([]);
const [Folders, setFolders] = useState([]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

상태 변수는 카멜 케이스로, 소문자로 시작하도록 일관성을 맞춰주세요~

Copy link
Collaborator

Choose a reason for hiding this comment

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

37, 39번째줄도요!

Comment on lines +44 to +47
setLinksByQuery(linksByQuery.data.folder);
setUser(user.data[0]);
setName(name.data[0].name);
setFolders(Folders.data.folder);
Copy link
Collaborator

Choose a reason for hiding this comment

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

folderid 가 변경될 때 fetchData 가 실행되면서 전체 폴더, 폴더에 있는 링크들, 유저, 폴더 정보 요렇게 총 네가지를 다시 불러오고 있습니다.
유저 정보 같은건 새로 불러오지 않아도 될 것 같은데 네가지 모두 다 불러와야하는지 검토해보시면 좋을 것 같아요~

Copy link
Collaborator

Choose a reason for hiding this comment

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

index 와 folderId 페이지로 나눠주신 이유가 있나용?

파일명 컨벤션 중에 optional 로 segment 값을 받을 수 있는게 있습니다. 요걸로 하나의 페이지로 작업해볼 수 있을 것 같습니다!
https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes#optional-catch-all-segments

Copy link
Collaborator

Choose a reason for hiding this comment

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

pages 폴더도 src 하위로 옮겨주세요~

Comment on lines +11 to +23
axiosInstance.interceptors.request.use(
(config) => {
// 로컬 스토리지에서 signInToken 가져오기
const token = localStorage.getItem("signInToken");
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

인터셉터로 헤더 값에 일괄 적용되도록 설정해주셨네요 👍

Comment on lines +61 to +70

// useEffect(() => {
// onChangeName(selectedId); // eslint-disable-next-line
// }, [selectedId]);

// const onChangeName = (id) => {
// const nameById =
// id && folders ? folders.find((item) => item.id === id)?.name : "전체";
// setName(nameById);
// };
Copy link
Collaborator

Choose a reason for hiding this comment

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

불필요한 주석은 정리해주세요~

@o-seung-yeon o-seung-yeon merged commit 5f80be0 into codeit-bootcamp-frontend:part3-김보민 May 29, 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