Files
2026-05-27 10:43:01 +09:00

2.9 KiB

공유채팅 채팅방 설정 정리

변경 목표

  • 공유채팅방의 채팅방 설정 입력 항목이 많아도 부모 레이아웃이 흔들리지 않도록 전체폭 우측 Drawer 구조로 정리한다.
  • 공유 링크 권한만으로도 채팅유형과 채팅 알림 수신 여부가 정상 저장/재조회되도록 맞춘다.
  • 공통 문맥과 방 전용 문맥이 "상속"과 "방 전용 override"를 구분해 저장되도록 정리한다.

변경 범위

  • src/app/main/pages/ChatSharePage.tsx
    • 채팅방 설정 UI를 Modal에서 Drawer + Tabs 구조로 변경
    • 채팅유형, 공통 문맥, 방 전용 문맥, 채팅 알림, 보안 탭 분리
    • 공유 스냅샷의 conversation.chatTypeId, lastChatTypeId, notifyOffline 우선 사용
    • 공통 문맥 기본값 계산 시 빈 배열을 "없음"이 아니라 "채팅유형 기본값 상속"으로 처리
  • src/app/main/pages/ChatSharePage.css
    • 전체폭 Drawer 및 탭/카드형 설정 레이아웃 스타일 추가
  • src/app/main/mainChatPanel/chatUtils.ts
    • 공유 채팅방 설정 저장 API helper를 채팅유형/알림/비밀번호 통합 저장 형태로 확장
    • 공유 스냅샷 conversation 필드에 채팅유형/알림 메타데이터 파싱 추가
  • etc/servers/work-server/src/routes/chat.ts
    • /api/chat/shares/:token/room-settings가 채팅유형/알림 수신까지 저장하도록 확장
    • /api/chat/shares/:token 응답에 채팅유형/알림 상태 포함
  • etc/servers/work-server/src/services/chat-room-service.test.ts
    • 채팅방 컨텍스트 update field 계산 테스트 보강

저장/적용 기준

  • 채팅유형
    • 공유 스냅샷의 현재 conversation.chatTypeId 또는 lastChatTypeId를 우선 기준으로 사용한다.
    • 저장 시 chatTypeId, lastChatTypeId, contextLabel을 함께 반영한다.
  • 공통 문맥
    • 선택값이 비어 있고 방 전용 override가 없으면 채팅유형 기본 공통 문맥을 상속한다.
    • 선택값이 채팅유형 기본값과 동일하면 room override를 별도로 저장하지 않는다.
  • 방 전용 문맥
    • 제목/본문 중 하나라도 있으면 room context로 저장한다.
    • 둘 다 비면 room context에서 제거한다.
  • 채팅 알림
    • 공유 링크 현재 클라이언트 기준 notifyOffline을 저장한다.
    • 실제 푸시는 브라우저 권한과 전체 앱 알림 사용 상태가 모두 허용된 경우에만 수신된다.

확인 포인트

  • 전체폭 Drawer가 열려도 부모 화면 레이아웃이 흔들리지 않는지
  • 채팅유형을 바꾼 뒤 다시 설정을 열었을 때 방금 저장한 유형이 재표시되는지
  • 공통 문맥을 비워 두면 채팅유형 기본 문맥 상속으로 동작하는지
  • 방 전용 문맥 제목/본문 저장 후 다시 열었을 때 유지되는지
  • 채팅 알림 토글 상태가 저장 후 공유 스냅샷 응답에 반영되는지