modulersYJ/ganoverflow-front

REFACTOR 제안 : New chat Route 분기

Closed this issue · 3 comments

@ABizCho
오면서 생각해봤는데요,
Chat 페이지에서 sidebar / main 이 공유하는 상태 3가지 중 2가지 - ’chatPairs‘랑 ’cnt‘ 를 sidebar가 몰라도 해결할 방법이 생각나서 제안합니다. 직접 짜신 입장에서 이 방법에 문제가 있다고 판단되시면 기각하셔도 돼요 ㅎㅎㅎ 걍 아이디어라서

저희 chat 페이지가 특이한게, Single Page라는거 같아요

sidebar는 사실 PLP역할, main이 PDP역할이잖아요? 지금은 이게 한 컴포넌트 아래 있다보니까 데이터를 서버에서 받아와서 같은 State 안에 (chatPairs, cnt) 채워줘야 합니다.

문제가 되는 부분이 [New Chat] 버튼을 눌렀을 때 두 상태를 초기화해줘야되는거 뿐이면, (레거시한 방식이지만..) 라우팅을 분기해줘서 함수 복붙하고 저 두 상태를 비워놓는건 어떨까요?

사용자가 ‘chat/new’ 로 들어가거나, new chat 버튼을 눌렀거나, 로그인을 안했을 때에는 이쪽으로 라우팅 시켜주는거죠.

그냥 제안일 뿐이니까 한번 봐주세요!

@hongregii 헛 지금확인했네요..!
일단,,, 매드사이언티스트 빙의해서 컴포넌트 분해결합 대규모 공사를 진행중이라
말씀해주신 내용은 조만간 참고해보도록 할게요! 조언 감사합니다!

@ABizCho ㅋㅋㅋㅋ 수고 많으시네요
여기에 추가로, 게시판에서 작성자가 게시물 수정을 하고 싶을 때, chat 페이지로 연동시켜줄 필요가 있을 것 같은데...
이렇게 하려면 chat 쪽에서도 chat/[postId] 이런 식으로 라우팅이 들어갈 필요도 있을 것 같아요

이렇게 chat을 spa로 안다루게 되면 장점이

  • sidebar와 main이 공유할 상태가 없어짐.
    - AS IS : sidebar에서 선택한 chatPostId를 기반으로 main 안에 chat을 서버에서 받아와서 (전역)상태에 채워줌. 그런데 new chat 시 이 상태를 비워줘야 하기 때문에, sidebar와 main 양쪽에서 같은 상태를 공유해야 하는 번거로움.
    - To Be : chat/new 에서는 비어있는 상태 렌더링, chat/에서는 서버에서 받아온 값 기준으로 상태 채우기.
  • update / delete 기능에서 쫌 더 강점 있을듯?
    - 게시물 수정/삭제를 chat 한곳에서 관리한다는 장점. (아니라면 따로 편집할 수 있는 페이지를 만들어야 할지도?)

@hongregii

여기에 추가로, 게시판에서 작성자가 게시물 수정을 하고 싶을 때, chat 페이지로 연동시켜줄 필요가 있을 것 같은데...

게시판 쪽 게시물 수정도 고민해볼 일이네요..! 다만 sidebar와 main이 공유할 상태가 없어짐. 은 아마 달성되기 어려운 목표일 것 같습니다.. 이 둘 각각은 단순히 초기 fetched된 데이터에 기반해서만 동작하는 것이 아니라 서로 유기적으로 변화를 추적해야하는 포인트들이 있어서요ㅠ

제 생각에 사이드바와 챗메인은 spa로 유지할 수 밖에 없을 것 같습니다.

다만 게시글 수정에 대해서는 chat/[postId] 이런 식으로 라우팅 대신, 본인 게시글에 대해 수정 클릭 시 chat으로 전역 상태 혹은 localStorage에 isLoadedChat을 저장시키며, chat페이지로 라우팅 한 이후 (채팅 이어하기 상태를 ING)으로 변경하는 것으로 수정상태의 해당하는 포스트로 라우팅 하는 효과를 가질 수 있을 것 같아요! 이 부분은 시간 나실때 추가 논의 해보아요~