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

Client web/chat merge #136

Merged
merged 21 commits into from
Dec 22, 2019
Merged

Client web/chat merge #136

merged 21 commits into from
Dec 22, 2019

Conversation

sukjae
Copy link
Collaborator

@sukjae sukjae commented Dec 22, 2019

PR에 대한 요약

PR에 대한 동기와 상황에 대한 설명 부탁드립니다

.
구매자의 입장에서 판매자가 올린 상품에 대해 문의/흥정 등을 진행하기 위해 개인적인 소통이 필요하기도 합니다. 댓글과 같이 다른 이에게도 노출될 수 있는 소통 채널 보다는 1:1로 private하기 위한 소통 공간이 필요합니다.
채팅 기능을 제공함으로서 구매자로서 판매자의 중고 상품을 구매하기 위해 대화를 시작할 수 있습니다.

이번 코드는 어떻게 테스트 되었나요?

proptype를 포함하고, 테스트를 포함하지 않습니다 ㅠ

결과물 스크린샷 (선택) :

image
image

어떤 변화인가요?

  • Bug fix (큰 변화없이 이슈를 고칩니다.)
  • New feature (큰 변화없이 기능을 추가합니다.)
  • Breaking change (기능을 추가하거나, 수정함으로서 기존의 기능에 영향을 줄 수 있습니다.)

체크리스트:

  • 본 프로젝트의 코드 스타일을 따랐습니다.
  • 이번 변화에 대한 결과로, 본 프로젝트의 문서를 수정해야 합니다.
  • 이에 따라 본 프로젝트의 문서를 적절히 갱신하였습니다.

본 PR은 다음 이슈에 해당하는 내용입니다.

Closes #125
Closes #80
Closes #79
Closes #95
Closes #75
Closes #77

- 사용자가 채팅하는 공간은 chat room이라 정했습니다
- 사용자가 주고받는 대화 하나하나는 message라 정했습니다
- 이에 따라 적절한 파일명으로 수정합니다
- auth 기능이 구현됨에 따라, 해당 정보를 context를 통해 접근할 수 있게 되었음
- 그리하여 prop를 통해 내리던 current user에 대한 정보를 내릴 필요 없이 사용되는 component에서 직접 접근하도록 수정
- auth 기능이 구현됨에 따라 기존에 존재하던 mock user를 제거하였습니다.
- socket 통신을 애플리케이션 전반에서 컴포넌트간의 교환이 불필요하기에 별도 구현하였던 Socket context가 아닌 새로운 socket을 작성하였습니다.
- useEffect안에 존재하던 큰 로직들을 외부의 함수로 분리하였습니다.
  - 이 과정으로 통해, 추후 해당 부분들을 적절한 custom hooks로 분리 예정입니다
- auth 기능이 구현됨에 따라 채팅방에 입장하는 기능 구현
- 로그인된 유저만 채팅 거래 기능 사용 가능
- mongodb의 id형태를 그대로사용하기 위해 underscore-dangle 허용
- 작업의 효율을 위해 proptypes의 strict한 제한 해제
- 하나의 요소일 경우, default로 export해야 하는 조건 해제
- 유저가 처음 웹을 실행할 때 유저 정보는 기본값을 갖는다
- 그 후 유저가 로그인하거나 로그아웃 함에 따라 유저 정보는 변화된다
- 이 과정에서 유저가 처음 웹을 실행하고, 유저가 로그인 되지 않은 상황과 유저가 임의로 로그아웃 한 상황을 구분하기 위한 기능을 포함한다
- 채팅의 목록을 보여주기 위한 page & component
- 랜더링 성능 향상을 위해 react-window 접목
- 채팅방에서, 최근 글의 요약을 보여줌
- 내가 대화중인 모든 채팅 목록을 보여줌
@sukjae sukjae requested review from kgpyo and Johnie-Yeo December 22, 2019 20:33
@sukjae sukjae self-assigned this Dec 22, 2019
@sukjae sukjae merged commit 76817e7 into client-web/master Dec 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant