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

[박준성] Week7 #273

Merged
merged 13 commits into from
Jan 11, 2024
Merged

[박준성] Week7 #273

merged 13 commits into from
Jan 11, 2024

Conversation

juncastle97
Copy link

@juncastle97 juncastle97 commented Dec 2, 2023

요구사항

기본

  • 링크 공유 페이지 url path는 ‘/shared’, 폴더 페이지 url path는 ‘/folder’가 되도록 설정했나요?
  • 폴더 페이지에서 상단 네비게이션 바는 스크롤 시 상단에 고정하지 않고 가려지도록 했나요?
  • 상단 네비게이션 바에 프로필 영역의 데이터는 https://bootcamp-api.codeit.kr/docs 에 명세된 “/api/users/1”을 활용했나요?
  • “전체” 폴더를 선택한 경우 “공유”, “이름 변경”, “삭제” 버튼들이 보이지 않지만, 다른 폴더를 선택한 경우에는 버튼들이 보이나요?
  • 폴더 목록에 필요한 데이터는 “/api/users/1/folders”를 활용했나요?
  • “전체” 폴더에 필요한 링크들 데이터는 “/api/users/1/links”를 활용하고, 이외의 폴더에 필요한 링크들 데이터는 “/api/users/1/links?folderId={해당 폴더 ID}”를 활용했나요?
  • Mobile에서 “폴더 추가” 버튼은 최하단에서 101px 떨어져있는 Floating Action Button으로 만들었나요?

심화

주요 변경사항

스크린샷

image

멘토에게

  • 과제 완료 후 create PR 하겠습니다.
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@juncastle97 juncastle97 added the 미완성 죄송합니다... label Dec 2, 2023
@juncastle97 juncastle97 changed the title Part2 박준성 week7 [박준성] Week7 Dec 2, 2023
@juncastle97 juncastle97 marked this pull request as ready for review December 9, 2023 03:03
Copy link
Collaborator

@Tanney-102 Tanney-102 left a comment

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.

fetcn 함수를 호출하고 response.json을 반환하는 로직이 반복되는 것 같은데 반복되는 부분만 별도의 함수로 분리해보면 어떨가요?

Comment on lines +7 to +10
function formatDate(value) {
const date = new Date(value);
return `${date.getFullYear()}. ${date.getMonth() + 1}. ${date.getDate()}`;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Date객체의 toLocaleString이나 Intl.DateTimeFormat 같은 아이들로도 어느정도 포맷팅은 가능합니다! 위 formatDate함수에서 하는 일은 해당 api로 불가한 포맷팅일까요?

Comment on lines +13 to +18
const [modalOpen, setModalOpen] = useState(Array(data).fill(false));
const showModal = (index) => {
const newModalOpen = [...modalOpen];
newModalOpen[index] = !newModalOpen[index];
setModalOpen(newModalOpen);
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

배열도 좋지만 Set을 사용해도 좋겠습니다.
모달마다 id를 주고 그 id를 set에 add/delete하는 방식도 고려해보시면 좋을 것 같아요

Comment on lines +7 to +11
function formatDate(value) {
const date = new Date(value);
return `${date.getFullYear()}. ${date.getMonth() + 1}. ${date.getDate()}`;
}

Copy link
Collaborator

Choose a reason for hiding this comment

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

같은 로직이 다른 파일에도 있었던 것 같아요. 별도의 모듈(utils)로 분리하면 좋겠습니다.


const getProfile = async () => {
const { data } = await getUser();
const { email, image_source } = data[0]; // 인덱스로 접근하는 것 말고 다른 방법이 있을까요?
Copy link
Collaborator

Choose a reason for hiding this comment

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

data를 생성하는 시점(클라에서 생성할 수도 있고 서버에서 가져오는 시점을 수 있겠죠?)에 객체 형태로 만들어 주시면 될 것 같아요!
만약 서버에서 배열이 오는 상황이라면

const data = dataFromServer.reduce((acc, cur) => ({
    ...acc,
    [cur.id]: cur
  }), {})

이런 느낌으로 해볼 수 있을 것 같아요

@juncastle97 juncastle97 closed this Jan 1, 2024
@juncastle97 juncastle97 reopened this Jan 1, 2024
@Tanney-102 Tanney-102 merged commit b72c3e0 into codeit-bootcamp-frontend:part2-박준성 Jan 11, 2024
1 check passed
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