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 #478

Conversation

O-daeun
Copy link
Collaborator

@O-daeun O-daeun commented May 26, 2024

요구사항

기본

  • 링크 공유 페이지의 url path를 ‘/shared/{folderId}’로 변경하고, {folderId}에 해당하는 폴더 데이터가 화면에 보이게 해주세요.
  • 폴더 페이지의 url path를 전체 링크를 보는 경우 ‘/folder’로, 특정 폴더를 보는 경우 ‘/folder/{folderId}’로 변경하고, {folderId}에 해당하는 폴더 데이터가 화면에 보이게 해주세요.

심화

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

주요 변경사항

  • 배포 url : https://linkbrary-oh.vercel.app
  • 메인페이지 ui 구현
  • shared 페이지, folder 페이지 다이나믹 라우팅 구현
  • 검색 기능 구현
  • 로그아웃 기능 구현
  • 전체적으로 리팩토링

멘토에게

  • 이번 주에는 위클리미션에 좀 더 집중해서 기능 구현이나 ui의 완성도를 높이려고 노력했습니다.
  • 지난 미션에서 구현하지 못했던 검색 기능도 추가로 구현하였습니다.
  • 그 외 저번에 코드리뷰해주셨던 부분에서 최대한 반영하였는데, 부족한 부분은 추후 계속 리팩토링해보겠습니다!

O-daeun added 30 commits May 20, 2024 16:36
@O-daeun O-daeun requested a review from o-seung-yeon May 26, 2024 12:14
@O-daeun O-daeun added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. and removed 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 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.

계속해서 개선하려는 태도가 훌륭하십니당
고생하셨습니다 👏

/>
{folderNames?.map((folderName, index) => (
<MenuButton
<MenuLink currentFolderId={currentFolderId || '0'} />
Copy link
Collaborator

Choose a reason for hiding this comment

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

currentFolderId 값이 없을 때 기본값을 설정해주셨는데요.
값이 없을 땐 기본값으로 '0' 을 넣어야 한다는 사실은 MenuLink 내부를 봐야 알 수 있는 부분 같습니다.
그래서 currentFolderId 는 optional 로 두고 없을 때 내부에서 기본값을 설정할 수 있도록 처리하면 어떨까요?

Comment on lines +53 to +55
useEffect(() => {
handleFilterItems();
}, [searchText]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

serarchText 가 변경될 때마다 필터처리를 하고 계시네요~
디바운스를 적용하면 좋을 것 같아요.
아래 글 참고해보세요!

https://www.zerocho.com/category/JavaScript/post/59a8e9cb15ac0000182794fa

Comment on lines +93 to +95
} else {
return;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

else 문은 정리해줄 수 있겠네용

Copy link
Collaborator

Choose a reason for hiding this comment

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

서비스 전반적으로 사용되는 인터페이스를 별도 파일로 분리해주셨네요 👍

title: string;
image_source: string;
}[];
items: LinkInterface[] | undefined;
Copy link
Collaborator

Choose a reason for hiding this comment

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

undefined 는
items?: LinkInterface[] 형태로 작성할 수도 있습니당

Comment on lines +46 to +48
{isVisibleKebabModal && (
<S.LogoutButton onClick={handleLogout}>로그아웃</S.LogoutButton>
)}
Copy link
Collaborator

Choose a reason for hiding this comment

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

로그아웃 기능도 구현해주셨네요 👏

if (response.status < 200 || response.status >= 300) {
throw new Error('사용자 데이터를 불러오는데 실패했습니다.');
let response;
if (localStorage.accessToken) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

localStorage 를 로그로 출력해보니 객체 형태라 해당 문법도 잘 동작하는 것 같습니다.
문서를 보면 이렇게 접근하는게 표준이 아닌 것 같으니 안내하는 대로 getItem() 으로 접근하는게 좋을 것 같습니다!

https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem

setFolders(nextFolders);
const nextFolderNames = nextFolders.map((item) => item.name);
const nextItemCounts = nextFolders.map((item) => item.link.count);
setFolderNames(nextFolderNames);
Copy link
Collaborator

Choose a reason for hiding this comment

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

folders 가 있는데 folderNames 상태를 추가로 가지고 있어야 하는지 잘 모르겠어서 사용처를 확인해봤습니다.
Card 컴포넌트에서 더보기를 띄울지 말지 여부를 결정하는 조건인 것 같은데 다른 요소로 대체할 수 있을 것 같습니당

Comment on lines +94 to +98
let nextLinks;
nextLinks = await getLinks(
user.id,
currentFolderId ? Number(currentFolderId) : 0
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

분리해서 let 으로 선언할 필요가 없어 보입니다!

@o-seung-yeon o-seung-yeon merged commit b122a0d 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