-
Notifications
You must be signed in to change notification settings - Fork 6
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
[Feat] Calendar 페이지 기능 구현 #199
Conversation
p2: 현재 참여자수는 원래부터 보내주지않았고 참여자 조회를 통해서 클라이언트에서 직접 추출해서 사용하는 것으로 알고 있습니다. |
/mogaco/:id와 /mogaco/:id/participant API가 분리된 이유 `/mogaco/:id에서 participant 정보까지 받아오는 것은 힘들까요?
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 모각코 리스트 페이지에서 각 아이템의 참여자 수를 추가로 표시하려면
아이템마다 id를 통해서 각각 /mogaco/:id/participants 요청을 보내주어야 할 것 같습니다. (Promise.all 이용?)
`/mogaco/:id에서 participant 정보까지 받아오는 것은 힘들까요?
-> 가능은 한데 너무 json 데이터가 길어지진 않을까요?, 가능합니다!
스키마를 바꾸는게 어렵지 않다면 저도 바꾸는 편이 더 좋을 것 같고, 너무 시간이 오래 걸린다 싶으면 그냥 인원 수 표시를 빼는 쪽으로 가도 좋습니다!
아하 확인했습니다! |
아마 그 외관? 이라고 해야하나 거기서 리스트 별로 보여주는 부분을 구현할 때 이렇게 된 것 같습니다. |
=> 회의를 거쳐 GET /mocago/:id에서 participant까지 보내 주도록 수정하기로 함 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jotai는 하나의 카테고리로 분류할 수 있는 상태를 개별적으로 관리하는지 또는 객체로 묶어서 관리하는지 아직 학습 중입니다.
이것에 대해 조금 찾아보았는데, 각각의 상태를 atom으로 만들되 여러 atom을 객체로 묶은 것 자체도 atom으로 만들어 관리하는 방법을 권장하는 것 같습니다.
https://jotai.org/docs/guides/atoms-in-atom#storing-a-map-of-atom-configs-in-atom
이렇게 관리할 때의 장점은 비슷한 카테고리의 상태를 객체로 묶어 관리할 수 있으면서도 여러 atom 중 하나가 변경되더라도 다른 atom을 사용하는 뷰에 리렌더링을 일으키지 않는다고 하네요? Jotai가 바텀-업 방식이라는 게 이런 느낌인 것 같기도 합니다..
그러나 캘린더 아이템을 선택하기 이전에 사이드바를 열 수 있어 이에 대한 처리가 필요합니다.
'선택된 모각코 없음' 같은 UI로 간단하게 표시하고 기본값을 닫힘 상태로 두면 좋을 것 같습니다!
그리고 특정 모각코를 선택할 때에 자동으로 열리게 하고, 다른 곳을 클릭해서 선택을 해제하면 닫히도록 onSelect에서 setClosed를 호출해도 좋을 것 같아요
(모각코를 선택하지 않은 상태에선 사용자가 사이드바 열기 버튼을 눌러서 굳이 열지 않는 한 표시하지 않도록?)
0fc3c7d
to
7ca4ff8
Compare
- 폰트 크기 14px로 설정해서 키움 - paddingBottom 설정
- 캘린더 이벤트 클릭 시 id를 mogacoAtom에 저장 - 저장된 mogacoAtom을 사용하여 사이드바 렌더링에 필요한 useQueries 호출 - 사이드바 내 모각코 컴포넌트에 필요한 props를 사용해 렌더링하도록 변경
- 선택된 아이템이 없을 경우 선택 유도 메시지 표시 - 로딩 중일 경우 로딩 바 표시 - 선택한 아이템의 정보가 없을 경우 재시도 메시지 표시
7ca4ff8
to
aa67efe
Compare
participantCount, | ||
maxHumanCount, | ||
address, | ||
}: Pick<MogacoTypes, 'date' | 'maxHumanCount' | 'address'> & { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3: -Props
로 따로 타입을 빼는 건 페이지 컴포넌트 한정일까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
굳이 분리할 필요가 있을까 싶어 이대로 작성했는데 가독성과 컨벤션 측면에서는 분리하는 것이 좋을 것 같네요. ed9a5dc 반영했습니다.
@@ -17,7 +17,13 @@ export const container = style({ | |||
padding: '2rem', | |||
}); | |||
export const contents = style([sansRegular16, {}]); | |||
export const group = style([sansBold12, {}]); | |||
export const group = style([sansBold14, {}]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3: 빈 객체 {}
를 추가한 이유는 추후 확장하게 될 상황을 고려하신 건가요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그렇게 생각할 수도 있을 것 같고, 이전에 각각 스타일을 작성하다가 공통으로 뺄 수 있어서 수정하면서 그대로 남기게 되었습니다.
ddb6813에서 스타일 대신 폰트 스타일만 사용하도록 변경했습니다.
설명
첫 번째 설명과 약간 이어지는 부분으로, mocago 기본 id를 -1로 설정해 놓고 아무 이벤트(달력이나 지도)도 선택되지 않은 상태로 사용하려고 했습니다. useQuery의 enabled 옵션을 사용하여 id가 -1이 아닐 경우에만 API 요청을 하도록 설정할 수 있습니다. 그러나 캘린더 아이템을 선택하기 이전에 사이드바를 열 수 있어 [1] 이에 대한 처리가 필요합니다.→ @js43o 님이 주신 아이디어와 같이 선택 유도 메시지를 표시하도록 구현했습니다. [2]
/mogaco/:id
와/mogaco/:id/participant
API가 분리된 이유완료한 기능 명세
스크린샷
2023-11-27.17.43.02.mov
캘린더 아이템을 선택하기 이전에 사이드바를 열었을 경우 ⬇️⬇️⬇️
2023-11-27.17.44.02.mov
선택된 아이템 없을 경우 선택 유도 메시지 표시, 로딩 인디케이터 추가, 404 오류의 경우 재시도 메시지 표시
2023-11-28.15.37.26.mov
리뷰 요청 사항