[FE-12] 커뮤니티 상세·멤버십·역할 화면

작업 내용 (설계 의도)

변경 사항

근거: 설계 문서 S5. 파일: app/communities/[id].tsx(신규, 이 티켓 단독 소유).

동아리 상세 + 가입/멤버/역할 관리 화면.

  • 컨테이너: useCommunity·useCommunityMembers(FE-07) + useMyProfile(내 역할 판정) + 멤버십 mutation(useJoinCommunity/useApproveMember/useKickMember/useTransferHost/useLeaveCommunity).
  • 상단 요약(종목·공개여부·멤버수·방장) + 역할별 주요 CTA: 비멤버→가입(공개=즉시 ACTIVE/비공개=승인대기 표시), 멤버→“채팅 입장”(전용방 이동), 방장→멤버별 강퇴/위임.
  • 멤버 리스트(역할 배지). 방장에게만 강퇴/위임 노출(FR-3). 강퇴/위임/탈퇴는 확인 다이얼로그. 강퇴/탈퇴 성공 시 방목록 무효화(자동 퇴장 FR-5).
  • 게스트/비멤버는 멤버 목록 접근 제한 안내(FR-13).
  • 4상태(loading/empty 방어/error/success).
  • 토스 패턴: 상단 요약 + 명확한 단일 주요 CTA, 멤버는 하위 섹션.

색 하드코딩 금지, 라이트/다크. 역할 판정 로직은 유틸/훅.

의존

  • FE-04 (UI 프리미티브), FE-07 (커뮤니티 훅)

다이어그램

클래스 의존

flowchart LR
    Detail[communities/id] --> useCommunity
    Detail --> useCommunityMembers
    Detail --> useJoinCommunity
    Detail --> useKickMember
    Detail --> useTransferHost

테스트 케이스

  • 방장에게 멤버별 강퇴·위임 버튼이 노출되고 일반 멤버에게는 노출되지 않는다
  • 비공개 커뮤니티 가입 시 “승인 대기 중” 상태가 표시된다
  • 공개 커뮤니티 가입 시 즉시 ACTIVE가 되고 “채팅 입장”이 노출된다
  • 강퇴 확인 후 성공 시 방목록 캐시가 무효화된다(자동 퇴장)
  • 탈퇴 시 확인 다이얼로그가 뜨고 확정 시 멤버에서 제거된다
  • 비멤버는 멤버 목록 접근 제한 안내를 본다