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: follow state sync hook, store, api 추가 #297

Merged
merged 7 commits into from
Aug 29, 2024

Conversation

Jungjjeong
Copy link
Member

🤔 어떤 문제가 발생했나요?

🎉 어떻게 해결했나요?

타인의 id 리스트, 단일 id에 대한 본인의 follow 여부를 조회하고 변경할 수 있는 훅을 개발합니다

  • store
    • member-following.ts : 단일 memberId 기준으로 팔로잉 여부 데이터를 캐싱하는 Store 파일입니다.
  • hook/apis
    • use-following-state: api 호출, store sync 등의 follow state를 변경하고자 할 때 사용하는 훅입니다.
    • use-follow-mutate: 팔로우 상태를 변경하는 api입니다



사용법

사용법은 다음과 같습니다.

  1. 여러 개의 아이디 리스트로 팔로우 상태 싱크 (서버 데이터를 받아와 싱크합니다)
    useMemberFollowingState 훅의 useSyncFollowingListState를 꺼내와 사용합니다.
    스크린샷 2024-08-30 오전 1 05 59

memberIdList를 받아 한번에 api를 호출하고, memberID 기준의 query 데이터에 캐싱됩니다.
member 단일의 isFollowing의 상태는 다음과 같습니다

// 서버에서 받아온 맨 처음 데이터를 _original에 저장
// toggleFollow로 인하여 사용자에게 보여지는 데이터는 isFollowing boolean값에 저장합니다.
{
  _original : { isFollowing: boolean },
  isFollowing: boolean
}



  1. 하나의 아이디로 팔로우 상태 조회 (캐싱된 데이터를 받아옵니다 / 없을 시 단일 데이터 조회)
    useMemberFollowingState훅의 useMemberIsFollowing을 꺼내와 isFollowing 상태를 사용합니다.
    toggle하고자 할 때, toggleFollow 함수를 꺼내와 사용합니다.

스크린샷 2024-08-30 오전 1 07 34

-> toggleFollow는 우선적으로 보여지는 상태를 변경하고 > 이후에 api를 호출합니다 (상태 우선 업데이트)

📷 이미지 첨부 (Option)

⚠️ 유의할 점! (Option)

  • 동작 방식과 관련해서 궁금한 점이 있다면 코멘트 남겨주세요!

@king2dwellsang king2dwellsang added feat # Add feature Review Plz🙏 # Review is not yet complete labels Aug 29, 2024
Copy link
Collaborator

@hjy0951 hjy0951 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.

store 보다는 hooks가 좀더 어울리는 위치인 것 같아 보입니다!

@Jungjjeong Jungjjeong merged commit 09d88bd into feat/profile Aug 29, 2024
2 checks passed
@Jungjjeong Jungjjeong deleted the feature/follow-state branch August 30, 2024 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat # Add feature Review Plz🙏 # Review is not yet complete
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants