-
Notifications
You must be signed in to change notification settings - Fork 3
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: 게시글 신고 Toast mds로 변경 및 멤버 신고/차단 기능 추가 #1555
Conversation
내 프로필인지 여부에 따라서 수정/메뉴 버튼 분기 처리
신고, 차단 Item 추가 및 반응형 width 설정
|
🚀 프리뷰 배포 확인하기 🚀 |
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.
도영아 고생했어!! 꽤 복잡한 작업이었을 것 같은데 너무 꼼꼼하게 잘 처리해 준 것 같아!! 일단 어풉 날려두겠습니다!
okButtonText: '신고하기', | ||
cancelButtonText: '취소', | ||
maxWidth: 324, | ||
maxWidth: 400, | ||
zIndex: zIndex.헤더, |
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.
여기 zIndex의 기준이 있을까요?! 번외로 저도 개발할때 똑같은 이슈가 있었는데, 한번 다같이 zIndex 기준을 정해야할 필요는 있어보입니다..
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.
zIndex가 헤더보다 낮아서 헤더에 가려지더라구요,,, 그래서 일단 헤더와 같은 zIndex로 설정했습니다!
한번 다같이 zIndex 기준을 정해야할 필요는 있어보입니다..
그리고 이 의견에 동의합니다!
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.
z-index 위계를 한 번 쭉 정의내릴 필요는 있어보여요...! 저도 맨날 하나씩 확인해서 올리고 그랬어서...
okButtonText: '신고하기', | ||
cancelButtonText: '취소', | ||
maxWidth: 324, | ||
maxWidth: 400, |
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.
이 부분은 코드 리뷰보다는 질문에 가까운데.. 이번에는 피그마에 있는 Dialog 디자인을 따르는게 아닌 기존의 Confirm 공동 컴포넌트를 활용한거일까요?! 약간의 차이가 있어서 노티남깁니다(closed버튼 등등). 만약 맞다면 나중에 mds 도입때 같이 처리하면 될 것 같아요!
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.
mds를 사용하지는 않았어요! 추후 mds로 같이 마이그레이션 할 필요는 있어 보입니다!
그리고 어떤 부분에서 디자인이 다를까요? 다른 점을 잘 못찾겠어서요,,,
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.
앗 closed 버튼(x자 버튼 유무) 이나 line height같은게 조금 다른 부분이 저도 작업하다가 있더라고요!! mds를 사용하지 않았다면 나중에 같이 마이그레이션 하면 될 것 같아요 :)
const { mutate } = usePostBlockMemberMutation(); | ||
|
||
const handleBlockMember = async (memberId?: number) => { | ||
if (!memberId) throw new Error('Invalid Member id'); |
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.
예외 처리 꼼꼼함에 박수를....폼 미쳤다!!!
@@ -147,7 +174,7 @@ const MemberDetail: FC<MemberDetailProps> = ({ memberId }) => { | |||
</ContactWrapper> | |||
</ProfileContents> | |||
|
|||
{profile.isMine && ( | |||
{profile.isMine ? ( |
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.
여기를 레거시 코드에서 로직을 변경한 이유가 있을까요!
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.
내 멤버의 뷰를 보냐에 따라서 edit 버튼과 신고/차단할 수 있는 메뉴 드롭다운이 나와야하는데, 그래서 조건에 따라서 분기처리를 추가했습니다!
@@ -1,3 +1,4 @@ | |||
import { css } from '@emotion/react'; |
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.
여기가 css가 쓰이지 않는거같은데.. 없애주는게 필요할 것 같아요!!
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.
반영했습니다!
okButtonText: '신고하기', | ||
cancelButtonText: '취소', | ||
maxWidth: 324, | ||
maxWidth: 400, | ||
zIndex: zIndex.헤더, |
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.
z-index 위계를 한 번 쭉 정의내릴 필요는 있어보여요...! 저도 맨날 하나씩 확인해서 올리고 그랬어서...
useEffect(() => { | ||
const resizeMenuWidth = () => { | ||
setDropdownOpenStyle((prevStyle) => ({ | ||
...prevStyle, | ||
minWidth: window.innerWidth <= 768 ? '100px' : '133px', | ||
})); | ||
}; |
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.
q : 혹시 이렇게 구현한 이유가 있으실까요? 단순히 스타일링을 내려주기 위함이라면 미디어쿼리를 이용할 수도 있을 것 같아서요!
p2 :
그리고 혹시 FeedDropdown이 피드쪽에서만 사용되는 컴포넌트로 보이는데, 맞을까요?? 그렇다면, 이렇게 스타일을 props로 내려주는 것보다, FeedDropdown의 디자인이 아예 바뀐 것이니, FeedDropdown의 스타일을 바꿔주는 게 더 좋을 것 같아요!
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.
a
스타일링을 내려주기 위해서입니다! 미디어쿼리를 사용하니, 가장 상위 컴포넌트인 <DropdownMenu.Root>
에 스타일이 적용이 되어 <StyledContent>
에 스타일을 주기 위해서 추가했어요!
사실 이 코멘트를 확인하기 전에 머지를 했는데, 지금 보니 FeedDropdown
의 스타일을 바꾸는 것이 더 좋아보이네요..!
추후 수정하겠습니다! 감사합니다!
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.
최대한 스타일 방식은 스타일드 컴포넌트를 사용하는 현재 방식을 유지하는 것이 좋을 것 같구, window.innerWidth <= 768 이렇게 진행하게 되면 엔드포인트가 공통적으로 관리되지 않을 수도 있을 것 같아서 추후 수정하면 말해주세용
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.
FeedDropdown의 스타일을 바꿔주는 게 더 좋을 것 같아요!
@seojisoosoo 이 코멘트 반영했습니다!
queryClient.invalidateQueries({ | ||
predicate: (query) => query.queryKey.some((key) => String(key).includes('community')), | ||
}); | ||
await router.push(playgroundLink.memberList()); |
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.
q :
오오..! 이거 원리가 궁금해용
쿼리키를 queryKey: useGetPostsInfiniteQuery.getKey(postId) 요런 식으로 생성하는데, 이렇게 생성할 때의 쿼리 키 배열에community가 들어있는건가요.?!
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.
a
저희가 멤버를 차단하면 그 멤버가 작성한 게시글과 댓글이 안보여야 하는데, 멤버 각각이 포함된 게시글과 댓글이 캐싱된 것을 invalidate 하기가 어려워 useGetPostsInfiniteQuery.getKey(postId)
, getPost.cacheKey(id)
, getComment.cacheKey(postId)
에서 community
가 포함된 쿼리키를 invalidate 하는 로직입니다!
This reverts commit 105862c.
🤫 쉿, 나한테만 말해줘요. 이슈넘버
🧐 어떤 것을 변경했어요~?
@sopt-makers/icons
패키지 추가🤔 그렇다면, 어떻게 구현했어요~?
dropdownOpenStyle 상태를 추가해 반응형으로 모달 사이즈 수정
❤️🔥 당신이 생각하는 PR포인트, 내겐 매력포인트.
차단 성공시 커뮤니티의 게시글, 댓글 등을 모두 다시 조회할 수 있도록
위와 같은 로직을 통해서
community
가 포함된 쿼리키들을 모두invalidate
해 다시 가져올 수 있도록 하였어요!어떤 게시글이 차단된 멤버의 댓글이 포함되어 있는지를 모르고, 이를 다시 불러와야하기 때문에 이런 식으로 구현하였는데!
혹시 더 효율적인 방법이 있는지 리뷰 부탁드립니다!
📸 스크린샷, 없으면 이것 참,, 섭섭한데요?