fix(main): 현재 라이브 전체 버튼을 고정한다
This commit is contained in:
@@ -85,6 +85,46 @@
|
||||
- `plutil -lint SodaLive.xcodeproj/project.pbxproj` 실행, `OK`
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` 실행, `BUILD SUCCEEDED`
|
||||
|
||||
### 2026-08-03 Phase 8.3 현재 라이브 `전체` 우측 고정
|
||||
|
||||
**Goal 실행 `P8-T3`:** 현재 라이브 아이템만 가로로 스크롤하고 `전체` 버튼은 섹션 오른쪽 끝에 고정한다.
|
||||
|
||||
- **시작 조건:** PRD 8.5와 2026-08-03 Decision Log 확정.
|
||||
- **완료 증거:** 정적 RED/GREEN, `SodaLive-dev` 빌드, 여러 아이템 렌더에서 스크롤 전후 `전체` 위치 확인.
|
||||
- **범위 밖:** API, 모델, ViewModel, 라우팅, `전체` 버튼 스타일 변경.
|
||||
- **TDD 대체 사유:** 프로젝트에 XCTest 번들 타깃이 없으므로 기존 Preview를 실제 렌더 harness로 사용하고 레이아웃 구조를 정적 RED/GREEN으로 검증한다.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `SodaLive/Sources/V2/Main/Home/Recommendation/Components/MainHomeLiveSection.swift`
|
||||
- Verify: `SodaLive/Sources/V2/Main/Home/Recommendation/Components/MainHomeLiveSection.swift`의 `MainHomeLiveSection_Previews`
|
||||
|
||||
- [x] **RED:** `MainHomeLiveAllItemView`가 `LazyHStack` 내부 마지막 항목으로 포함된 현재 구조를 확인한다.
|
||||
- [x] **RED 확인:** `rg -n '^ {20}MainHomeLiveAllItemView\\(onTapAll' SodaLive/Sources/V2/Main/Home/Recommendation/Components/MainHomeLiveSection.swift`가 `LazyHStack` 내부 들여쓰기의 기존 스크롤 종속 구조를 찾는지 확인한다.
|
||||
- [x] **GREEN:** `HStack`에서 라이브 목록 `ScrollView`와 `MainHomeLiveAllItemView`를 형제 뷰로 분리하고 기존 가장자리 여백을 유지한다.
|
||||
- [x] **GREEN 확인:** `MainHomeLiveAllItemView`가 `ScrollView` 밖에 한 번만 존재하고 `onTapLive`, `onTapAll`, 빈 배열 guard가 유지되는지 확인한다.
|
||||
- [x] **REFACTOR:** 추가 abstraction 없이 변경 파일의 diff와 빌드를 검증한다.
|
||||
- [x] **SURFACE:** iPhone 16 Pro 시뮬레이터에서 추천 홈을 캡처했으나 dev 응답의 `lives`가 비어 대상 섹션은 표시되지 않았다. 두 독립 리뷰에서 제품 결함 없음과 non-empty 상태 증거 부족을 확인했고, 사용자가 이 증거 제한을 명시적으로 수용했다.
|
||||
|
||||
### 2026-08-04 Phase 8.4 현재 라이브 `전체` 우측 여백 제거
|
||||
|
||||
**Goal 실행 `P8-R1`:** `전체` 버튼의 중복 trailing padding을 제거해 버튼 자체 프레임이 화면 오른쪽 끝에 붙도록 한다.
|
||||
|
||||
- **시작 조건:** 사용자 피드백과 `REV-P8-002` 확정.
|
||||
- **완료 증거:** 정적 RED/GREEN, `git diff --check`, `SodaLive-dev` Debug 빌드.
|
||||
- **범위 밖:** 라이브 목록의 왼쪽 여백, 목록·버튼 간격, 버튼 프레임·스타일·콜백 변경.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `SodaLive/Sources/V2/Main/Home/Recommendation/Components/MainHomeLiveSection.swift`
|
||||
- Review: `reviews/phase8-live-all-fixed.md`
|
||||
|
||||
- [x] **RED:** `.padding(.trailing, SodaSpacing.s20)`이 존재해 버튼 외부 우측 여백이 중복 적용됨을 확인한다.
|
||||
- [x] **RED 확인:** focused `rg`가 기존 22행과 `RED LIVE-ALL-TRAILING-INSET`을 출력한다.
|
||||
- [x] **GREEN:** `MainHomeLiveAllItemView`의 별도 trailing padding만 제거한다.
|
||||
- [x] **GREEN 확인:** focused `rg`가 trailing padding을 찾지 못하고 왼쪽 `s20`, `HStack`의 `s12`, 콜백이 유지되는지 확인한다.
|
||||
- [x] **REFACTOR:** 추가 변경 없이 diff와 빌드를 검증한다.
|
||||
|
||||
### 2026-07-12 장르 크리에이터 섹션 미표시 반영
|
||||
|
||||
- 목적: 메인 홈 추천 탭에서 서버 응답의 `genreCreators` 기반 장르(카테고리)별 크리에이터 UI를 표시하지 않는다.
|
||||
@@ -2101,3 +2141,33 @@
|
||||
- `rg "createdAt|Capsule\(\)|onChange\(of: proxy.size.height\)" SodaLive/Sources/V2/Component/Card/CommunityPostCard.swift SodaLive/Sources/V2/Component/Text/ExpandableTextView.swift` 실행, 생성 시간 입력/표시, pay capsule, 높이 변화 감지 검색 확인
|
||||
- `git diff --check` 실행, 출력 없이 성공 확인
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` 실행, `BUILD SUCCEEDED` 확인
|
||||
|
||||
### P8-T3 1차 실행 — 2026-08-03
|
||||
|
||||
- 상태: 완료
|
||||
- 무엇을: `MainHomeLiveSection`의 라이브 목록 `ScrollView`와 `전체` 버튼을 `HStack`의 형제 뷰로 분리해 `전체`를 오른쪽 끝에 고정했다.
|
||||
- 왜: 기존에는 `전체`가 `LazyHStack` 마지막 항목이라 라이브 목록과 함께 스크롤됐다.
|
||||
- 어떻게:
|
||||
- RED 정적 검증 — 기존 16행에서 `MainHomeLiveAllItemView`가 `LazyHStack` 내부에 있음을 확인했다.
|
||||
- GREEN 정적 검증 — `MainHomeLiveAllItemView`가 `ScrollView` 밖으로 이동하고 빈 배열 guard, `onTapLive`, `onTapAll`, 좌우 `SodaSpacing.s20`, 간격 `SodaSpacing.s12`가 유지됨을 확인했다.
|
||||
- `git diff --check` — 출력 없이 성공했다.
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` — `BUILD SUCCEEDED`.
|
||||
- iPhone 16 Pro(iOS 18.3) simulator build — 초기 전체 Pods 컴파일이 600초 제한으로 중단됐으나 동일 DerivedData의 `ONLY_ACTIVE_ARCH=YES` 증분 재실행은 `BUILD SUCCEEDED`.
|
||||
- simulator 설치/실행 — 성공, 추천 홈의 1206x2622 RGBA PNG 캡처가 정상 합성됨을 확인했다. dev 응답의 `lives`가 비어 대상 섹션은 표시되지 않았다.
|
||||
- 독립 시각 QA 2건 — 제품 결함 없음, non-empty 라이브 상태의 스크롤 전후 캡처 부재만 evidence blocker로 판정했다. 사용자가 해당 증거 제한을 수용했다.
|
||||
- teardown — iPhone 16 Pro simulator를 종료하고 임시 QA DerivedData와 캡처 디렉터리를 제거했다.
|
||||
- 남은 항목: 없음. non-empty 상태의 자동 시각 회귀는 테스트 타깃 또는 deterministic fixture가 도입될 때 추가한다.
|
||||
- 리뷰: `reviews/phase8-live-all-fixed.md`
|
||||
|
||||
### P8-R1 1차 실행 — 2026-08-04
|
||||
|
||||
- 상태: 완료
|
||||
- 무엇을: 고정된 `전체` 버튼의 `.padding(.trailing, SodaSpacing.s20)` 한 줄을 제거했다.
|
||||
- 왜: 버튼의 70pt 프레임 자체에 좌우 간격이 포함되어 외부 trailing padding이 우측 간격을 중복시켰다.
|
||||
- 어떻게:
|
||||
- RED — focused `rg`가 기존 22행의 trailing `s20`과 `RED LIVE-ALL-TRAILING-INSET`을 출력했다.
|
||||
- GREEN — 같은 `rg`가 trailing padding을 찾지 못했고, 스크롤 목록의 leading `s20`, `HStack`의 `s12`, 빈 상태와 콜백이 유지됨을 확인했다.
|
||||
- `git diff --check` — 출력 없이 성공했다.
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` — `BUILD SUCCEEDED`.
|
||||
- 남은 항목: 없음.
|
||||
- 리뷰: `reviews/phase8-live-all-fixed.md`의 `REV-P8-002` 수정 완료.
|
||||
|
||||
Reference in New Issue
Block a user