feat(creator-channel): 차단·신고 메뉴를 연결한다
This commit is contained in:
@@ -40,6 +40,7 @@ Figma 전체 화면 기준 공통 shell은 아래를 따른다.
|
||||
- 후속 버그(2026-07-20): `LiveDetailView`가 이미 종료된 라이브의 상세 조회 실패 응답을 받으면 `이미 종료된 라이브 입니다.` 토스트는 표시되지만 `LiveDetailView` overlay가 닫히지 않아 DIM 배경이 화면에 남는다.
|
||||
- 후속 UI 보정(2026-07-20): 채널 홈 후원 섹션의 카드 너비가 `374pt`로 고정되어 있어 디바이스 너비가 `402pt`보다 작은 화면에서는 기준 디자인과 같은 비율을 유지하지 못한다.
|
||||
- 후속 연결(2026-08-03): 내 채널의 헤더 팔로워 수(`팔로워 n명`)는 표시만 되고 있어, 사용자가 자신을 팔로우하는 유저 목록으로 바로 이동할 수 없다.
|
||||
- 후속 누락(2026-08-14): 다른 크리에이터 채널의 title bar 더보기 버튼은 표시되지만 `CreatorChannelView.titleBar`의 `onTapMore`가 빈 closure라 사용자 차단/신고 메뉴가 열리지 않는다.
|
||||
|
||||
## 3. Goals
|
||||
- `creatorId`로 `GET /api/v2/creator-channels/{creatorId}/home`을 호출하고 응답 데이터로 크리에이터 채널 공통 shell과 홈 탭 콘텐츠를 구성한다.
|
||||
@@ -61,6 +62,10 @@ Figma 전체 화면 기준 공통 shell은 아래를 따른다.
|
||||
- 이미 종료된 라이브의 `LiveDetailView`를 열면 `이미 종료된 라이브 입니다.` 토스트를 표시하고 `LiveDetailView`/DIM overlay를 닫아 진입 전 화면을 유지한다.
|
||||
- 채널 홈 후원 섹션 카드 너비는 디바이스 너비가 `402pt` 이상이면 `374pt`를 유지하고, `402pt` 미만이면 디바이스 너비에 비례해 축소한다.
|
||||
- 내 채널에서 헤더의 팔로워 수를 누르면 신규 V2 화면을 만들지 않고 기존 `AppStep.followerList(userId:)` 레거시 화면으로 이동한다.
|
||||
- 다른 크리에이터 채널의 title bar 더보기 버튼을 누르면 `사용자 차단하기`, `사용자 신고하기`, `프로필 신고하기` 메뉴를 표시한다.
|
||||
- 더보기 메뉴는 `.sheet`를 사용하지 않고 현재 화면의 최상위 `ZStack` overlay에 BottomSheet 형태로 표시한다.
|
||||
- 새 메뉴 View를 만들지 않고 기존 `ProfileReportMenuView`와 `UserProfileView`의 차단/신고 확인 흐름을 재사용한다.
|
||||
- 사용자 차단이 성공하면 현재 `CreatorChannelView`를 닫고 진입 이전 화면으로 돌아간다.
|
||||
|
||||
## 4. Non-Goals
|
||||
- `화보` 탭과 화보 섹션은 구현하지 않는다.
|
||||
@@ -72,6 +77,8 @@ Figma 전체 화면 기준 공통 shell은 아래를 따른다.
|
||||
- 크리에이터 채널 전용 라이브 상세 상태나 중복 `LiveDetailView` 호스트를 추가하지 않는다.
|
||||
- Figma localhost asset URL을 앱 코드에 직접 사용하지 않는다.
|
||||
- `Pods/**`, `generated/**`, `build/**`는 수정하지 않는다.
|
||||
- `CreatorChannelHomeResponse`에 차단 상태를 추가하거나 차단 해제 메뉴를 구현하지 않는다.
|
||||
- 차단 성공 후 navigation path를 초기화하거나 강제로 홈 route를 설정하지 않는다.
|
||||
|
||||
## 5. Target Users
|
||||
- 크리에이터 채널에서 라이브, 콘텐츠, 커뮤니티, 후원, 팬Talk 정보를 한 번에 확인하려는 사용자
|
||||
@@ -427,6 +434,12 @@ Figma 참조:
|
||||
- 후원 카드의 높이, 내부 콘텐츠, 패딩, 카드 간격 및 후원 탭 세로 목록 레이아웃은 기존 상태를 유지한다.
|
||||
- 내 채널의 헤더 팔로워 수를 누르면 `FollowerListView(userId: creatorId)`로 이동한다.
|
||||
- 다른 사람 채널에서는 헤더 팔로워 수 탭으로 팔로워 목록에 이동하지 않는다.
|
||||
- 다른 크리에이터 채널의 title bar 더보기 버튼을 누르면 DIM 배경과 함께 화면 하단에 `사용자 차단하기`, `사용자 신고하기`, `프로필 신고하기` 메뉴가 표시된다.
|
||||
- 더보기 메뉴는 `.sheet`가 아니라 `CreatorChannelView`의 overlay 계층에서 표시되고, DIM 영역을 누르면 닫힌다.
|
||||
- `사용자 차단하기`는 기존 `UserBlockConfirmDialogView`, `사용자 신고하기`는 `UserReportDialogView`, `프로필 신고하기`는 `ProfileReportDialogView` 흐름으로 연결된다.
|
||||
- 내 채널에서는 기존처럼 title bar의 더보기 메뉴를 표시하지 않는다.
|
||||
- 사용자 차단 API가 성공하면 기존 `dismiss()` 흐름으로 현재 크리에이터 채널을 닫고, 해당 채널을 열기 전 화면으로 돌아간다.
|
||||
- 차단 성공 후 현재 채널에 머물지 않으므로 `CreatorChannelHomeResponse`에는 `isBlock`과 같은 차단 상태 필드를 추가하지 않는다.
|
||||
|
||||
## 11. Open Questions
|
||||
해당 없음.
|
||||
@@ -449,3 +462,5 @@ Figma 참조:
|
||||
- 2026-07-20: 사용자 확인에 따라 기존 루트 `ZStack`의 `liveDetailSheet` 분기를 외부 overlay에 복제하지 않고 이동하며, 이동 후 불필요해진 기존 위치의 분기를 제거하는 것으로 범위를 명확히 했다.
|
||||
- 2026-07-20: 사용자 확인에 따라 `LiveDetailView` 표시 대상은 `.live`로 한정했다. `.liveReplay`는 다시 듣기 카테고리의 업로드 콘텐츠이므로 `.audio`와 동일한 오디오 콘텐츠 상세 화면으로 이동하며, 현재 두 스케줄 handler에서 `.live`와 묶인 분기를 각각 수정 대상으로 추가했다.
|
||||
- 2026-08-03: 사용자 요청에 따라 내 채널의 헤더 팔로워 수를 기존 레거시 `FollowerListView`로 연결하는 범위를 추가했다. 요청 문구의 `팔로잉 n명`은 현재 UI와 API 계약상 `팔로워 n명`, 즉 해당 채널을 팔로우하는 사용자 목록으로 해석한다.
|
||||
- 2026-08-14: `UserProfileView`가 `ProfileReportMenuView`를 최상위 `ZStack` overlay로 표시하며 `UserBlockConfirmDialogView`, `UserReportDialogView`, `ProfileReportDialogView`에 연결하는 기존 구현을 확인했다. `CreatorChannelView.titleBar`의 빈 `onTapMore`를 같은 흐름에 연결하고 새 BottomSheet View나 `.sheet`를 추가하지 않는 최소 변경으로 요구사항을 확정했다.
|
||||
- 2026-08-14: 사용자 제안에 따라 차단 성공 후 현재 `CreatorChannelView`를 `dismiss()`해 진입 이전 화면으로 돌아가도록 확정했다. 이 동작에서는 차단 후 메뉴를 다시 표시할 필요가 없으므로 `CreatorChannelHomeResponse`에 차단 상태를 추가하거나 강제로 홈 route를 설정하지 않는다.
|
||||
|
||||
Reference in New Issue
Block a user