-
Notifications
You must be signed in to change notification settings - Fork 0
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: 멤버 상태 변경 기능 #293
Merged
Merged
feat: 멤버 상태 변경 기능 #293
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
사용자가 상태 변경 버튼을 눌렀을 때 상태변경 이벤트를 서버에 전송
멤버들의 접속 상태는 Landing 페이지에서뿐 아니라 다른 페이지에서도 접근 가능해야 하기 때문에 전역으로 관리하도록 변경
최적화 전의 자리비움 상태 변경 기능 추가
socket이 일반 변수로 관리되고 있어 연결 요청이 두 번 발생하던 현상 수정 disconnect 동작을 추가해 프로젝트 페이지에서 벗어나면 연결 해제되도록 수정
기존 useLandingSocket에 있던 멤버 상태 초기화 로직을 LandingMember 내부 훅으로 옮김 멤버 상태 전역 관리
10분 동안 사용자 움직임이 없을 시 자동으로 자리비움 상태로 변환하는 기능 구현
useUserLeaveProject 훅을 만들어 내부에 로직 구현
수동으로 자리비움이나 부재중으로 변경 시 이벤트리스너를 제거해 움직임을 감지하지 못하도록 함
eventListener를 add하면서 타이머를 설정하도록 수정
바뀐 socket 통신 규칙에 맞게 member 관련 로직을 member 내부로 이동
…into feature/update-member-status
…stcampwm2023/web10-Lesser into feature/update-member-status
매 렌더링마다 landing 이벤트에 달린 모든 이벤트 핸들러가 on, off를 반복하여 머지했을 때 member 관련 로직이 제대로 동작하지 않았다. socket.on과 off는 한 번만 하면 되기 때문에 각 socket 훅의 useEffect에 빈 의존성배열을 넘겨 한 번만 실행되도록 했다.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎟️ 태스크
자리비움 상태 변경 로직 작성
클라이언트에서 프로젝트에 새로 추가된 멤버 표시 로직 작성
클라이언트 접속 상태 변경 로직 작성
✅ 작업 내용
🖊️ 구체적인 작업
접속 상태 변경, 추가된 멤버 표시
LandingMember
한 곳이 아니라 다른 곳에서도 접근이 필요해 zustand를 통한 전역 상태로 관리하도록 했습니다.useLandingSocket
에 정의되어 있던 myInfo, memberList 업데이트를LandingMember
내의useUpdateUserStatus
로 옮겨LandingMember
내에서 다룰 수 있게 수정했습니다.자리 비움 상태 자동 변경
LandingPage
에서 만이 아니라 다른 페이지에서도 확인할 수 있어야 하므로MainPage
에서 자동 상태 변경 로직을 처리하도록 했습니다.🤔 고민 및 의논할 거리
useDropdown
에서handleChangeSelectedOption
을 반환해 외부에서도 selectedOption 값을 바꿀 수 있도록 했습니다. 이처럼 원래 있던 코드에 동작을 위한 코드를 추가할 때 어떤 방법으로 추가할지 고민이 됩니다. 재설계가 필요할 것 같기도 합니다.📸 결과 화면