Description 목적
Chat.jsx와 Details.jsx의 모든 mock 데이터를 제거하고, 이미 구현된 서버 REST/STOMP 기능에 연결.
unreadCount는 프론트에서 계산하지 않는 방식으로, 서버 값을 그대로 표시하고 WebSocket 읽음 수신 시에만 미러링.
작업 목록
의존성 추가: @stomp/stompjs, sockjs-client, vitest
unreadSync.js 순수 함수 TDD (서버 decreaseUnreadCount 미러링 규칙)
chat.js REST API 레이어 TDD (6종: loadMyChatRooms, loadChatMessages, markChatRoomRead, leaveChatRoom, getChatRoomMembers, getOrCreateDirectChatRoom)
chatSocket.js STOMP 싱글톤 (SockJS /ws, 쿠키 인증, connect/subscribe/publish/disconnect)
auth.js에 getCachedUserNo() 헬퍼 추가
routes.jsx — /chat/group/:chatRoomNo, /chat/dm/:chatRoomNo 파라미터화
ChatListScreen — mock 제거, GET /api/chat/rooms 연동, unreadCount 뱃지 서버 값
ChatComposer — 첨부(이미지/파일) UI 전체 제거, 텍스트 전용
ChatDetailScreen — REST 메시지 로드 + STOMP 실시간 수신/전송 + 읽음 처리 + SYSTEM 메시지 중앙 회색 렌더
ChatDMScreen — 동일 흐름, getOrCreateDirectChatRoom 진입점 핸들러 연결
ChatNotificationGate — 전역 /user/queue/notification 구독 (ROOM_DELETED / KICKED_FROM_ROOM)
최종 검증: 단위 테스트 13건 PASS + 빌드 성공 + E2E 수동 시나리오
Reactions are currently unavailable
You can’t perform that action at this time.
목적
작업 목록