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

Conversation

aowjarkwk
Copy link
Collaborator

요구사항

https://a1b2c3d4zzzzzznextts.vercel.app/user/signin

https://a1b2c3d4zzzzzznextts.vercel.app/folder

https://a1b2c3d4zzzzzznextts.vercel.app/shared/282

기본

  • [링크 공유 페이지] 링크 공유 페이지의 url path를 ‘/shared’에서 ‘/shared/{folderId}’로 변경했나요?

  • [링크 공유 페이지] 폴더의 정보는 ‘/api/folders/{folderId}’, 폴더 소유자의 정보는 ‘/api/users/{userId}’를 활용했나요?

  • [링크 공유 페이지] 링크 공유 페이지에서 폴더의 링크 데이터는 ‘/api/users/{userId}/links?folderId={folderId}’를 사용했나요?

  • [폴더 페이지] 폴더 페이지에서 유저가 access token이 없는 경우 ‘/signin’페이지로 이동하나요?

  • [폴더 페이지] 폴더 페이지의 url path가 ‘/folder’일 경우 폴더 목록에서 “전체” 가 선택되어 있고, ‘/folder/{folderId}’일 경우 폴더 목록에서 {folderId} 에 해당하는 폴더가 선택되어 있고 폴더에 있는 링크들을 볼 수 있나요?

  • [폴더 페이지] 폴더 페이지에서 현재 유저의 폴더 목록 데이터를 받아올 때 ‘/api/folders’를 활용했나요?

  • [폴더 페이지] 폴더 페이지에서 전체 링크 데이터를 받아올 때 ‘/api/links’, 특정 폴더의 링크를 받아올 때 ‘/api/links?folderId=1’를 활용했나요?

  • [상단 네비게이션] 유효한 access token이 있는 경우 ‘/api/users’로 현재 로그인한 유저 정보를 받아 상단 네비게이션 유저 프로필을 보여주나요?

심화

  • [심화] 리퀘스트 헤더에 인증 토큰을 첨부할 때 axios interceptors 또는 이와 유사한 기능을 활용 했나요?

주요 변경사항

  • sample api로 구현되어있던 folder, shared 페이지를 실제 api를 사용하도록 수정했습니다.
  • Context API를 사용하여 유저기능을 구현했습니다.

스크린샷

로그인 X - shared 페이지

스크린샷 2023-12-17 오후 6 09 24

로그인 O - folder 페이지

스크린샷 2023-12-17 오후 6 09 37

멘토에게

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

@aowjarkwk aowjarkwk requested a review from devym-37 December 17, 2023 09:11
@aowjarkwk aowjarkwk self-assigned this Dec 17, 2023
@aowjarkwk aowjarkwk added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 순한맛🐑  마음이 많이 여립니다.. and removed 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. labels Dec 17, 2023
Copy link
Collaborator

@devym-37 devym-37 left a comment

Choose a reason for hiding this comment

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

잘 작성해주셨습니다.
일부분, 코드에 궁금한 부분들만 코멘트 달아드렸습니다.👍🏻

@@ -39,7 +41,7 @@ const FolderAddBar = ({ folders, isSticky, isHidden }: FolderAddBarProps) => {
<Modal.SelectButtonWrap>
{folders?.map((folder) => (
<li key={folder.id}>
<ModalSelectButton folderName={folder.name} linkCount={folder.link.count} />
<ModalSelectButton folderName={folder.name} linkCount={1} />
</li>
Copy link
Collaborator

Choose a reason for hiding this comment

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

1로 고정하신 이유가 있으실까요 ?

@@ -4,11 +4,10 @@ import { axiosInstance } from "@/utils/axiosInstance";
import { useCallback, useEffect } from "react";

export const useGetFolders = () => {
const getFolders = useCallback(() => axiosInstance.get<Folders>("users/1/folders"), []);
const getFolders = useCallback(() => axiosInstance.get<Folders>("folders"), []);
const { execute, loading, error, data } = useAsync<Folders>(getFolders);
Copy link
Collaborator

Choose a reason for hiding this comment

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

api 호출 함수를 useCallback으로 사용하신 이유가 있으실까요 ?

@@ -19,11 +20,13 @@ export const useGetLinks = (folderId: string) => {
description,
});

const linksData = data?.data?.map(mapDataFormat).map(mapLinksData) ?? [];
const linksData = data?.data?.folder?.map(mapDataFormat).map(mapLinksData);

Copy link
Collaborator

Choose a reason for hiding this comment

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

linksData 값이 ?. 옵셔널 값으로 기존에는 ?? [] 값이 존재했는데, 사라진 이유가 있을까요 ?

link?.title?.toLowerCase().includes(searchQuery.toLowerCase())
)
: links ?? [];

Copy link
Collaborator

Choose a reason for hiding this comment

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

filter안에 너무 복잡한 로직으로 작성되어 있는 것 같습니다. 조금더 분리해서 함수로 만든다던가, 코드 가독성을 높일 수 있는 방법이 있는지 고민해보셔도 좋을 것 같습니다

nextUser = res.data.data[0];
} finally {
setUser(nextUser);
setIsPending(false);
Copy link
Collaborator

Choose a reason for hiding this comment

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

let nextUser변수를 할당 후 finally에서 setUser하시는 것 보다, await 이후 바로 setUser해주시는 것이 좋을 것 같습니다

@devym-37 devym-37 merged commit 5b9550c into codeit-bootcamp-frontend:part3-윤대호 Dec 18, 2023
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