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

Conversation

khs0727
Copy link
Collaborator

@khs0727 khs0727 commented May 26, 2024

요구사항

기본

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

심화

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

주요 변경사항

  • 링크 공유 페이지 api 변경
  • 폴더 페이지 수정중

멘토에게

  • 아직 폴더 페이지는 완성하지 못했습니다..!
  • 폴더 페이지에서 links 데이터를 받아오는 부분에서 자꾸 무한으로 api 요청을 하게 되는데 이유를 잘 모르겠습니다

@khs0727 khs0727 requested a review from devToram May 26, 2024 13:07
@khs0727 khs0727 added the 미완성🫠 죄송합니다.. label May 26, 2024
Copy link
Collaborator

@devToram devToram left a comment

Choose a reason for hiding this comment

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

수고하셨습니다 :)

Comment on lines +6 to +13
data: {
id: number;
title: string;
created_at: string;
url: string;
description?: string;
image_source?: string;
}[];
Copy link
Collaborator

Choose a reason for hiding this comment

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

data: {} 로 오는 건 보통 서버에서 오는 응답인 경우가 많은데 이 경우엔 generic 함수를 이용해서 처리하는 경우가 많습니다!
https://velog.io/@ctdlog/Axios-Response-with-generic#%EC%99%9C-%EA%B8%B0%EB%B3%B8-response-%ED%83%80%EC%9E%85%EC%9D%84-%EB%B0%94%EA%BF%94%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C%EC%9A%94

}[];
}

export async function useFetchLinks(userId: number, folderId: number) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

use 로 시작하는 훅의 경우 pages 말고 hooks 폴더에 따로 묶어주심 좋을 거 같아요!

Copy link
Collaborator

Choose a reason for hiding this comment

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

useFetchLink 랑 되게 비슷한 구조라 공통화해봐도 좋을 거 같아요!


interface CardListProps {
isFolderPage: boolean;
userId?: number | null;
folderId?: string | string[] | null | undefined;
Copy link
Collaborator

Choose a reason for hiding this comment

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

folderId 의 타입이 너무 많은 거 같아요! 최대한 로직에 맞게 줄여보면 좋을 거 같습니다!

Comment on lines +34 to +37
let url = `/users/${userId}/links`;
if (folderId) {
url += `?folderId=${folderId}`;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
let url = `/users/${userId}/links`;
if (folderId) {
url += `?folderId=${folderId}`;
}
�const url = `/users/${userId}/links` + (folderId ? `?folderId=${folderId}` : '');

const 로 쓸 수 있는 것들은 최대한 const 로 써주면 좋습니다!

Comment on lines +65 to +68
(link.url && link.url.toLowerCase().includes(lowerSearch)) ||
(link.title && link.title.toLowerCase().includes(lowerSearch)) ||
(link.description &&
link.description.toLowerCase().includes(lowerSearch))
Copy link
Collaborator

Choose a reason for hiding this comment

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

이 부분만 따로 떼서 메서드를 만들거나 아니면 util 함수로 빼도 괜찮을 거 같아요!

Comment on lines +94 to +98
selectedFolder
? folders.find(
(folder: { id: any }) => folder.id === selectedFolder
)?.name
: "전체"
Copy link
Collaborator

Choose a reason for hiding this comment

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

render 부에서 계산해주시보다 위에서 계산하고, render 부에서는 display 만 하시는 걸 추천드려요!

const userData: User = res.data.data[0];
setCurrentUser(userData);
}

Copy link
Collaborator

Choose a reason for hiding this comment

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

getUser 부분이 계속 반복되는 거 같아요! 보면 따로 상태가 있는 거 같진 않아서 util 로 빼면 좋을 거 같아요!

@devToram devToram merged commit 6007e29 into codeit-bootcamp-frontend:part3-김현서 May 28, 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.

3 participants