fix(main): 현재 라이브 전체보기를 보정한다

This commit is contained in:
Yu Sung
2026-08-03 15:37:27 +09:00
parent 498debbfc7
commit dc99bdf9c9
10 changed files with 172 additions and 160 deletions

View File

@@ -21,6 +21,56 @@
- 기존 `SodaLive/Sources/Home/HomeApi.swift`에는 `/api/v2/home/recommendations`를 추가하지 않는다.
- 외부 라이브러리는 추가하지 않는다.
### 2026-08-03 현재 라이브 전체보기 입장 로딩 표시 완료
- 목적: `LiveNowAllView`에서 라이브 항목 탭 후 방 상세 조회/입장 통신 중 멈춘 것처럼 보이지 않도록 기존 로딩 UI 표시
- TDD 예외 사유:
- SwiftUI 화면 내부 입장 흐름이며 앱 테스트 번들 타깃 검색 결과가 없어 production View를 직접 import하는 영구 UI/unit test를 이번 Task에서 추가할 수 없다.
- 수행 내용:
- `LiveNowAllView`가 기존 `LiveViewModel.enterLiveRoom(roomId:)`를 직접 호출하도록 변경
- `BaseView(isLoading: $viewModel.isLoading)`를 통해 방 상세 조회/입장 요청 중 기존 `LoadingView` 표시
- 입장 전 결제 확인 dialog, 비밀방 password dialog, 입장 실패 toast를 `LiveNowAllView`에 연결
- `AppStep.liveNowAll``SectionLiveNowView`에서 더 이상 필요 없는 입장 콜백을 제거
- 검증:
- `rg -n "PBXNativeTarget.*Test|UITests|Tests|xctest|SodaLiveTests|SodaLiveUITests" SodaLive.xcodeproj/project.pbxproj` 실행, 테스트 타깃 없음 확인
- `rg -n "liveNowAll\(|liveNowAll\)|case \.liveNowAll|LiveNowAllView\(|onClickParticipant: onClickParticipant|let onClickParticipant" SodaLive/Sources` 실행
- `rg -n "BaseView\(isLoading: \$viewModel\.isLoading\)|viewModel\.enterLiveRoom\(roomId: roomId\)|LivePaymentDialog\(|LiveRoomPasswordDialog\(|sodaToast\(isPresented: \$viewModel\.isShowPopup" SodaLive/Sources/Live/Now/All/LiveNowAllView.swift` 실행
- `git diff --check` 실행
- `plutil -lint SodaLive.xcodeproj/project.pbxproj` 실행
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` 실행
### 2026-08-03 현재 라이브 전체보기 즉시 입장 변경 완료
- 목적: 추천 탭 `전체` 진입 화면에서 라이브 항목 탭 시 상세 오버레이를 거치지 않고 기존 라이브 입장 흐름으로 바로 연결
- TDD 예외 사유:
- SwiftUI 화면 내부 탭/가드 흐름이며 앱 테스트 번들 타깃이 없어 production View를 직접 import하는 영구 UI/unit test를 이번 Task에서 추가할 수 없다.
- 수행 내용:
- `LiveNowAllView`의 로그인 guard, 한국 사용자 본인인증 guard, 성인 콘텐츠 설정 guard는 유지
- guard 통과 후 `LiveDetailView` 표시 대신 `onClickParticipant(roomId)`를 직접 호출하도록 변경
- 기존 상세 Join 버튼 경로와 동일하게 직접 입장 직전 `AppState.shared.isShowPlayer = false` 처리 유지
- 검증:
- 변경 전 `rg -n "openLiveDetail\(roomId: roomId\)|LiveDetailView\(|liveAllViewModel|onClickParticipant\(liveAllViewModel.selectedRoomId\)" SodaLive/Sources/Live/Now/All/LiveNowAllView.swift` 실행, 상세 오버레이 경유 상태 확인
- 변경 후 `rg -n "LiveDetailView\(|liveAllViewModel|openLiveDetail\(" SodaLive/Sources/Live/Now/All/LiveNowAllView.swift` 실행, 출력 없음으로 상세 오버레이 경유 제거 확인
- 변경 후 `rg -n "enterLiveRoom\(roomId: roomId\)|onClickParticipant\(roomId\)|setAppStep\(step: \.login\)|contentViewSettings|isShowAuthConfirmView|pendingAction = \{ handleLiveNowItemTap" SodaLive/Sources/Live/Now/All/LiveNowAllView.swift` 실행, 즉시 입장 호출과 guard 유지 확인
- `git diff --check` 실행, 출력 없이 성공
- `plutil -lint SodaLive.xcodeproj/project.pbxproj` 실행, `OK`
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` 실행, `BUILD SUCCEEDED`
### 2026-08-03 현재 라이브 전체보기 리스트 UI 보정 완료
- 목적: 추천 탭 `전체` 진입 화면을 Figma `185:4509` 기준의 On Air 리스트 UI로 표시
- 수행 내용:
- `I18n.LiveNow.allTitle``On Air`로 변경
- `LiveNowAllView`의 2열 `LiveNowItemView` 그리드를 단일 `LazyVStack` + `LiveNowAllItemView` 리스트로 변경
- `LiveNowAllItemView``75x75` 원형 프로필, `LIVE` 태그, `HH:mm` 시작 시간, 18pt bold 제목, 14pt regular 크리에이터명, 우측 가격 영역 구조로 보정
- 유료 라이브는 `ic_bar_cash`와 가격, 무료 라이브는 가격/캔 아이콘 대신 `무료`만 표시
- 검증:
- `rg -n "LiveNowItemView\\(|LiveNowAllItemView\\(|DetailNavigationBar\\(title: I18n\\.LiveNow\\.allTitle\\)|static var allTitle|ic_bar_cash|ic_can_white" SodaLive/Sources/Live/Now SodaLive/Sources/I18n/I18n.swift` 실행, 변경 전 전체보기 화면의 2열 카드/기존 아이콘 상태 확인
- `rg -n "pick\\(ko: \\"On Air\\"|LazyVStack|LiveNowAllItemView\\(item: item|Image\\(\\"ic_bar_cash\\"\\)|I18n.CreateContent.free|frame\\(width: 75, height: 75\\)|appFont\\(size: 18, weight: \\.bold\\)|DateParser.parse" SodaLive/Sources/I18n/I18n.swift SodaLive/Sources/Live/Now/All` 실행, 변경 후 제목/리스트/유료/무료/시간/타이포그래피 근거 확인
- `git diff --check` 실행, 출력 없이 성공
- `plutil -lint SodaLive.xcodeproj/project.pbxproj` 실행, `OK`
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` 실행, `BUILD SUCCEEDED`
### 2026-08-03 Phase 8.2 현재 라이브 전체 항목 스타일 보정 완료
- 목적: 메인 홈 추천 탭 현재 라이브 섹션 마지막 `전체` 항목을 요청한 텍스트 전용 스타일로 표시