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

[Fix] 기수별 랭킹 도입 중 발생한 버그 해결 #305

Merged
merged 7 commits into from
Oct 9, 2023

Conversation

yoopark
Copy link
Contributor

@yoopark yoopark commented Oct 9, 2023

Summary

Describe your changes

Dev 서버에서 발견한 아래 버그를 해결하였습니다.

기존 사용하던 LeaderboardURLReader, leaderboardArgsAtom에 문제가 있어 삭제하였습니다.
3b58309 커밋 본문 참고.

현재 Prod에도 올라가있는 리더보드 구현에서는 DateTemplate을 변경했을 때 굳이 Select를 다시 렌더링할 필요가 없음에도 다시 로딩하는 것을 확인할 수 있습니다. 또한, 에러가 떴을 때 Leaderboard SegmentedControl, PromoSelect 까지 사라질 필요가 없는데 현재 사라지고 있어서 해당 컴포넌트를 -Result 컴포넌트로 분리하여 해결하였습니다.
420d7e2 커밋 참고.

Issue number and link

SegmentedControl 변경시 재렌더링될 필요 없는 부분까지 되는 문제
ex. SegmentedControl, PromoSelect
loading, error, !data 처리를 내부 -Result 컴포넌트에서 처리하는 방식으로
해결하였습니다.
누적을 클릭했다가 누적이 없는 탭으로 이동하면 Unsupported DateTemplate이 뜨는 버그가 있었습니다.
기존 LeaderboardURLReader에서 leaderboardArgsAtom을 useEffect를 통해 수정하고 있었는데,
페이지를 옮긴 뒤 leaderboardArgsAtom이 뒤늦게 변경되어
leaderboardArgs를 사용하는 각 페이지의 useQuery가 바뀌기 전 leaderboardArgs로 한번,
바뀌고 난 뒤 또 한번 실행되어 발생하는 버그였습니다.

이를 동기적으로 처리하는 방법을 찾지 못하여 LeaderboardURLReader에서 하는 일을
각 페이지에서 처리하는 방식으로 변경하였습니다.
leaderboardArgs = toLeaderboardArgs(searchParams)로 쉽게 얻을 수 있기 때문에
가독성에도 크게 문제가 없습니다.
@yoopark yoopark added the bug Something isn't working label Oct 9, 2023
@yoopark yoopark self-assigned this Oct 9, 2023
@yoopark yoopark merged commit 1e377ba into develop Oct 9, 2023
4 checks passed
@yoopark yoopark deleted the fix/leaderboard-promo branch October 9, 2023 10:20
@42sungwook 42sungwook changed the title [BugFix] 기수별 랭킹 도입 중 발생한 버그 해결 [Fix] 기수별 랭킹 도입 중 발생한 버그 해결 Oct 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Done
1 participant