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

feat-fe: 로그인이 되어있을 시 대시보드로 리다이렉트 #899

Merged
merged 4 commits into from
Oct 23, 2024

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Oct 23, 2024

목적

로그인이 되어있는 상태에서 로그인 페이지에 진입하면 dashboard로 리다이렉트되는 동작을 추가합니다.

참고사항

useSyncExternalStore 사용해 useClubId 리팩토링

이번 작업에서는 useClubId 훅을 useSyncExternalStore로 리팩토링하여, localStorage의 clubId 상태를 실시간으로 동기화하도록 개선했습니다.

로그인 페이지에서 clubId 존재 여부에 따라 조건부 렌더링이 필요했지만, localStorage는 React 상태와 직접 연결되지 않으므로 값의 변화를 감지하려면 useEffect를 활용한 동기화가 필요했습니다. 이러한 로직을 SignIn 컴포넌트가 직접 관리하지 않도록, useClubId 훅으로 추상화했습니다.

useSyncExternalStore는 구독-알림 패턴을 통해 외부 데이터(localStorage)와 React 상태를 실시간으로 동기화할 수 있으므로, 이를 적용해 동기화 로직을 간소화했습니다.

아래의 별표줄 밑에 요구사항 ID만 작성해주세요. Prefix 금지!


SIGN_IN_02

closes #898

@github-actions github-actions bot added feature 새로운 기능 frontend 프론트엔드 labels Oct 23, 2024
@github-actions github-actions bot added this to the 스프린트 6.0 milestone Oct 23, 2024
@llqqssttyy llqqssttyy changed the title feat-fe: 로그인 시 리다이렉트 feat-fe: 로그인이 되어있을 시 대시보드로 리다이렉트 Oct 23, 2024
Copy link
Contributor Author

1729659369.789389

Copy link
Contributor Author

1729659372.557189

@llqqssttyy llqqssttyy marked this pull request as ready for review October 23, 2024 04:57
Copy link
Contributor Author

1729659456.811939

Copy link
Contributor

@seongjinme seongjinme left a comment

Choose a reason for hiding this comment

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

렛서 고생하셨어요! 로그인 화면에서 매번 새로 로그인 해야 하는 수고가 사라져서 기쁩니다 😄 한 가지 궁금한 점이 있어서 코멘트 드렸어요. 기능/코드적으로 크게 피드백 드릴 부분이 없어 Approve 드립니다.

Copy link
Contributor

Choose a reason for hiding this comment

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

새로 만들어주신 RedirectGuard 좋네요 👍

@@ -25,9 +33,13 @@ export default function useClubId() {
localStorage.removeItem(CLUB_ID_KEY);
};

const clubId = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
Copy link
Contributor

Choose a reason for hiding this comment

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

처음 보는 React 훅이어서 공식 문서를 한참 들여다 봤네요 😅 내부적으로 필요한 데이터가 리액트 외부에 의존성을 가지고 있을 때 이를 간편하게 처리해주는 건가보네요. 렛서 덕분에 좋은 것을 새로 배워갑니다.

한 가지 궁금한 점이 있는데, 이 훅의 3번째 인자는 getServerSnapshot로써 SSR과 Hydration을 위한 optional 인자로 알고 있어요. 여기에도 똑같이 getSnapshot을 넣어주신 이유가 궁금해요!

Copy link
Contributor

Choose a reason for hiding this comment

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

제가 생각해도 필요 없는 인자라 제거했습니다! 꼼꼼하게 봐주셔서 감사해요~

Copy link
Contributor

@lurgi lurgi 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
Contributor

@lurgi lurgi left a comment

Choose a reason for hiding this comment

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

navigate가 왜 안되는지 궁금하네용! 공부해볼게요~

@llqqssttyy llqqssttyy merged commit ad6bb22 into fe/develop Oct 23, 2024
1 check passed
@llqqssttyy llqqssttyy deleted the fe-898-SIGN_IN_02 branch October 23, 2024 07:07
seongjinme pushed a commit that referenced this pull request Oct 23, 2024
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kim Da Eun <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 새로운 기능 frontend 프론트엔드
Projects
Status: 완료
Development

Successfully merging this pull request may close these issues.

3 participants