fix(creator): 후원 카드 너비를 보정한다

This commit is contained in:
Yu Sung
2026-07-20 18:09:51 +09:00
parent 43e32f1867
commit 9a0e75a391
3 changed files with 48 additions and 1 deletions

View File

@@ -38,6 +38,7 @@ Figma 전체 화면 기준 공통 shell은 아래를 따른다.
- 후속 버그(2026-07-20): `AppState.liveDetailSheet`는 전역 상태지만 `LiveDetailView``NavigationStack`의 루트 콘텐츠 안에서 렌더링된다. 크리에이터 채널은 navigation destination으로 루트 콘텐츠 위에 표시되므로, 채널 스케줄의 라이브 예약 항목을 눌러도 상세가 현재 화면 위에 나타나지 않고 메인 화면으로 돌아간 뒤에야 보인다.
- 후속 버그(2026-07-20): `.liveReplay`는 다시 듣기 카테고리의 업로드 콘텐츠이고 `targetId`도 콘텐츠 ID이지만, 현재 크리에이터 채널과 메인 스케줄 분기에서는 `.live`와 함께 처리되어 라이브 진입 경로로 잘못 전달된다. `.liveReplay`의 상세 화면은 `.audio`와 동일한 오디오 콘텐츠 상세 화면이다.
- 후속 버그(2026-07-20): `LiveDetailView`가 이미 종료된 라이브의 상세 조회 실패 응답을 받으면 `이미 종료된 라이브 입니다.` 토스트는 표시되지만 `LiveDetailView` overlay가 닫히지 않아 DIM 배경이 화면에 남는다.
- 후속 UI 보정(2026-07-20): 채널 홈 후원 섹션의 카드 너비가 `374pt`로 고정되어 있어 디바이스 너비가 `402pt`보다 작은 화면에서는 기준 디자인과 같은 비율을 유지하지 못한다.
## 3. Goals
- `creatorId``GET /api/v2/creator-channels/{creatorId}/home`을 호출하고 응답 데이터로 크리에이터 채널 공통 shell과 홈 탭 콘텐츠를 구성한다.
@@ -57,6 +58,7 @@ Figma 전체 화면 기준 공통 shell은 아래를 따른다.
- 크리에이터 채널의 라이브 예약 스케줄 항목을 누르면 현재 채널 화면 위에 기존 `LiveDetailView`가 즉시 표시되고, 닫으면 같은 채널 화면으로 돌아온다.
- `.liveReplay` 스케줄 항목을 누르면 `targetId`를 콘텐츠 ID로 사용해 `.audio`와 동일한 기존 오디오 콘텐츠 상세 페이지로 이동한다.
- 이미 종료된 라이브의 `LiveDetailView`를 열면 `이미 종료된 라이브 입니다.` 토스트를 표시하고 `LiveDetailView`/DIM overlay를 닫아 진입 전 화면을 유지한다.
- 채널 홈 후원 섹션 카드 너비는 디바이스 너비가 `402pt` 이상이면 `374pt`를 유지하고, `402pt` 미만이면 디바이스 너비에 비례해 축소한다.
## 4. Non-Goals
- `화보` 탭과 화보 섹션은 구현하지 않는다.
@@ -247,6 +249,10 @@ Figma 참조:
- `channelDonations`가 비어 있으면 채널 후원 섹션을 숨긴다.
- 전체보기 action은 기존 `AppStep.channelDonationAll(creatorId:)` 또는 동일한 기존 흐름이 있으면 연결한다.
- 기존 흐름 연결이 어렵다면 후원 tab placeholder로 이동한다.
- 카드 너비는 기준 디바이스 너비 `402pt`, 최대 카드 너비 `374pt`를 사용한다.
- 디바이스 너비가 `402pt` 이상이면 카드 너비를 `374pt`로 유지한다.
- 디바이스 너비가 `402pt` 미만이면 `374 × deviceWidth / 402`로 카드 너비만 비례 축소한다.
- 카드 높이, 내부 레이아웃, 패딩, 카드 간격과 후원 탭의 세로 목록 너비는 변경하지 않는다.
### 7.10 공지 섹션
@@ -415,6 +421,8 @@ Figma 참조:
- 메인 화면과 다른 navigation destination에서 사용하는 기존 `.liveDetail` 진입도 동일한 전역 호스트에서 한 번만 표시된다.
- `ContentView``if let liveDetailSheet` 상태 기반 렌더 분기는 외부 overlay에 하나만 남고 기존 루트 `ZStack`에는 남지 않는다.
- 이미 종료된 라이브 상세 조회 실패 시 `AppState.liveDetailSheet` 또는 각 화면의 `LiveDetailView` 표시 상태가 해제되어 DIM 배경이 남지 않는다.
- 채널 홈 후원 섹션 카드 너비는 `402pt` 이상의 디바이스에서 `374pt`이고, `402pt` 미만에서는 `374 × deviceWidth / 402`로 계산된다.
- 후원 카드의 높이, 내부 콘텐츠, 패딩, 카드 간격 및 후원 탭 세로 목록 레이아웃은 기존 상태를 유지한다.
## 11. Open Questions
해당 없음.