fix(main): 현재 라이브 전체 버튼을 고정한다

This commit is contained in:
Yu Sung
2026-08-04 01:03:24 +09:00
parent f671f4f76c
commit 89c070875c
4 changed files with 215 additions and 7 deletions

View File

@@ -321,6 +321,12 @@ MainHomeView
- 여러 페이지에서 재사용 가능한 Card/Banner/Text/Button/Creator widget: `SodaLive/Sources/V2/Component/**`
- 기존 로직 수정이 아닌 신규 View/ViewModel/Repository는 `SodaLive/Sources/V2/**` 아래에 둔다.
### 8.5 현재 라이브 `전체` 고정 배치
- 현재 라이브 아이템 목록만 가로로 스크롤한다.
- `전체` 버튼은 스크롤 위치와 관계없이 섹션 오른쪽 끝에 고정한다.
- 라이브 스크롤 목록의 왼쪽 20pt 여백은 유지하고, `전체` 버튼에는 별도 오른쪽 여백을 적용하지 않는다.
- 라이브 목록이 비어 있으면 기존처럼 현재 라이브 섹션과 `전체` 버튼을 표시하지 않는다.
## 9. Technical Constraints
- 앱 소스 변경은 `SodaLive/Sources/**`에서 수행한다.
- `Pods/**`, `generated/**`, `build/**`는 직접 수정하지 않는다.
@@ -340,6 +346,7 @@ MainHomeView
- 추천 탭에서 `GET /api/v2/home/recommendations`를 호출하고 `success == true` 응답 데이터를 섹션별로 렌더링한다.
- 응답 배열이 비어 있는 섹션은 화면에 표시하지 않는다.
- 현재 라이브 섹션의 마지막 `전체` 항목은 배경 없이 medium 14 텍스트, `soda400` 색상, 세로 가운데 정렬로 표시된다.
- 현재 라이브 섹션의 `전체` 버튼은 라이브 아이템의 가로 스크롤과 관계없이 오른쪽 끝에 고정된다.
- 현재 라이브 `전체` 진입 화면의 상단 제목은 `On Air`로 표시하고, 라이브 아이템은 Figma `185:4509`의 리스트형 구조를 따른다.
- 현재 라이브 `전체` 진입 화면의 유료 라이브는 `ic_bar_cash`와 가격을 표시하고, 무료 라이브는 가격과 캔 아이콘 대신 `무료`만 표시한다.
- `추천 필모그래피`, `또 다른 모습`은 코드와 화면에 포함하지 않는다.
@@ -376,6 +383,7 @@ MainHomeView
- 기능 검증: 추천 API 성공/실패, 빈 섹션, 활동 타입 I18n, 상세 진입 guard, 최근 활동 `LIVE``targetId` 유무별 이동, `creatorId` 양수 검사, `LIVE_REPLAY`의 콘텐츠 상세 이동, 다른 활동 타입의 회귀 여부, 커뮤니티 카드 상태, 사업자 정보 더보기/접기를 확인한다.
- 모두 팔로우 기능 검증: 로그인/비로그인 상태를 구분해 Dialog 표시 여부를 확인하고, 확인 전·취소·dimmed 영역 터치에는 API 요청이 0회이며 `팔로우 하기` 선택 시에만 요청이 1회인지 확인한다.
- 다국어 검증: 앱 언어를 ko/en/ja로 전환해 모두 팔로우 Dialog의 제목, 설명, 확인, 취소 문구를 확인한다.
- 현재 라이브 고정 배치 검증: 여러 라이브 아이템이 표시된 상태에서 목록을 가로로 스크롤해 라이브 아이템만 이동하고 `전체` 버튼의 오른쪽 위치가 유지되는지 확인한다.
## 13. Decision Log
@@ -386,3 +394,14 @@ MainHomeView
- 로그인 사용자는 `팔로우 하기`를 명시적으로 선택한 경우에만 API를 호출한다.
- `취소`와 dimmed 영역 터치는 모두 보류 action 폐기 및 API 미호출로 처리한다.
- Dialog 문구는 7.6의 ko/en/ja 문구로 확정하며 관련 열린 질문은 없다.
### 2026-08-03 현재 라이브 `전체` 고정 배치
- `MainHomeLiveSection`에서 라이브 목록 `ScrollView``전체` 버튼을 형제 뷰로 분리한다.
- 오버레이 방식은 항목 가림과 터치 충돌 방지 여백이 추가로 필요하므로 사용하지 않는다.
- API, 모델, ViewModel, 라우팅과 `전체` 버튼 스타일은 변경하지 않는다.
### 2026-08-04 현재 라이브 `전체` 우측 여백 제거
- `전체` 버튼 자체 프레임에 좌우 간격이 포함되어 있으므로 별도 trailing padding을 제거한다.
- 라이브 스크롤 목록의 왼쪽 `SodaSpacing.s20`과 목록·버튼 사이 `SodaSpacing.s12`는 유지한다.