diff --git a/SodaLive.xcodeproj/project.pbxproj b/SodaLive.xcodeproj/project.pbxproj index 3808253c..fd481884 100644 --- a/SodaLive.xcodeproj/project.pbxproj +++ b/SodaLive.xcodeproj/project.pbxproj @@ -7,9 +7,9 @@ objects = { /* Begin PBXBuildFile section */ - CC0201012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift */; }; - CC0202012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift */; }; - CC0203012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift */; }; + CC0201012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; + CC0202012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; + CC0203012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; CC0201022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift */; }; CC0202022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift */; }; CC0203022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0200022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift */; }; @@ -1726,7 +1726,7 @@ CC0101162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift */; }; CC0101172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift */; }; CC0101182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift */; }; - CC0101192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; + CC0101192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift */; }; CC01011A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift */; }; CC01011B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift */; }; CC01011C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift */; }; @@ -1752,7 +1752,7 @@ CC0102162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift */; }; CC0102172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift */; }; CC0102182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift */; }; - CC0102192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; + CC0102192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift */; }; CC01021A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift */; }; CC01021B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift */; }; CC01021C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift */; }; @@ -1778,7 +1778,7 @@ CC0103162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift */; }; CC0103172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift */; }; CC0103182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift */; }; - CC0103192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift */; }; + CC0103192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0100192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift */; }; CC01031A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift */; }; CC01031B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift */; }; CC01031C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC01001C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift */; }; @@ -1810,7 +1810,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - CC0200012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelLiveReplayListItem.swift; sourceTree = ""; }; + CC0200012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelAudioContentListItem.swift; sourceTree = ""; }; CC0200022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelLiveStartButton.swift; sourceTree = ""; }; CC0200032FF0200000A5BBA3 /* CreatorChannelLiveTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelLiveTabView.swift; sourceTree = ""; }; CC01002A2FF0100000A5BBA3 /* ContentSort.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentSort.swift; sourceTree = ""; }; @@ -2647,7 +2647,7 @@ CC0100162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelDonationSection.swift; sourceTree = ""; }; CC0100172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelNoticeSection.swift; sourceTree = ""; }; CC0100182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelScheduleSection.swift; sourceTree = ""; }; - CC0100192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelAudioContentListItem.swift; sourceTree = ""; }; + CC0100192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelHomeAudioContentListItem.swift; sourceTree = ""; }; CC01001A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelAudioSection.swift; sourceTree = ""; }; CC01001B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelSeriesSection.swift; sourceTree = ""; }; CC01001C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreatorChannelCommunitySection.swift; sourceTree = ""; }; @@ -2747,7 +2747,6 @@ CC0200042FF0200000A5BBA3 /* Components */ = { isa = PBXGroup; children = ( - CC0200012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift */, CC0200022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift */, ); path = Components; @@ -5268,7 +5267,7 @@ CC0100162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift */, CC0100172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift */, CC0100182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift */, - CC0100192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift */, + CC0100192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift */, CC01001A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift */, CC01001B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift */, CC01001C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift */, @@ -5323,6 +5322,7 @@ CC0100292FF0100000A5BBA3 /* CreatorChannelFloatingActionMenu.swift */, CC01002B2FF0100000A5BBA3 /* CreatorChannelSortBar.swift */, CC01002C2FF0100000A5BBA3 /* CreatorChannelSortBottomSheet.swift */, + CC0200012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift */, ); path = Components; sourceTree = ""; @@ -5761,7 +5761,7 @@ CC0101162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */, CC0101172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */, CC0101182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */, - CC0101192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, + CC0101192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */, CC01011A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */, CC01011B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */, CC01011C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */, @@ -5784,7 +5784,7 @@ CC01012E2FF0100000A5BBA3 /* CreatorChannelLiveApi.swift in Sources */, CC01012F2FF0100000A5BBA3 /* CreatorChannelLiveRepository.swift in Sources */, CC0101302FF0100000A5BBA3 /* CreatorChannelLiveViewModel.swift in Sources */, - CC0201012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */, + CC0201012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, CC0201022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */, CC0201032FF0200000A5BBA3 /* CreatorChannelLiveTabView.swift in Sources */, 409E35082B0759DE00CCB985 /* MoyaProviderExtension.swift in Sources */, @@ -6583,7 +6583,7 @@ CC0102162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */, CC0102172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */, CC0102182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */, - CC0102192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, + CC0102192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */, CC01021A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */, CC01021B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */, CC01021C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */, @@ -6606,7 +6606,7 @@ CC01022E2FF0100000A5BBA3 /* CreatorChannelLiveApi.swift in Sources */, CC01022F2FF0100000A5BBA3 /* CreatorChannelLiveRepository.swift in Sources */, CC0102302FF0100000A5BBA3 /* CreatorChannelLiveViewModel.swift in Sources */, - CC0202012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */, + CC0202012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, CC0202022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */, CC0202032FF0200000A5BBA3 /* CreatorChannelLiveTabView.swift in Sources */, 401B3F092FEEF10000A5BBA3 /* MainHomeRankingViewModel.swift in Sources */, @@ -7421,7 +7421,7 @@ CC0103162FF0100000A5BBA3 /* CreatorChannelDonationSection.swift in Sources */, CC0103172FF0100000A5BBA3 /* CreatorChannelNoticeSection.swift in Sources */, CC0103182FF0100000A5BBA3 /* CreatorChannelScheduleSection.swift in Sources */, - CC0103192FF0100000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, + CC0103192FF0100000A5BBA3 /* CreatorChannelHomeAudioContentListItem.swift in Sources */, CC01031A2FF0100000A5BBA3 /* CreatorChannelAudioSection.swift in Sources */, CC01031B2FF0100000A5BBA3 /* CreatorChannelSeriesSection.swift in Sources */, CC01031C2FF0100000A5BBA3 /* CreatorChannelCommunitySection.swift in Sources */, @@ -7444,7 +7444,7 @@ CC01032E2FF0100000A5BBA3 /* CreatorChannelLiveApi.swift in Sources */, CC01032F2FF0100000A5BBA3 /* CreatorChannelLiveRepository.swift in Sources */, CC0103302FF0100000A5BBA3 /* CreatorChannelLiveViewModel.swift in Sources */, - CC0203012FF0200000A5BBA3 /* CreatorChannelLiveReplayListItem.swift in Sources */, + CC0203012FF0200000A5BBA3 /* CreatorChannelAudioContentListItem.swift in Sources */, CC0203022FF0200000A5BBA3 /* CreatorChannelLiveStartButton.swift in Sources */, CC0203032FF0200000A5BBA3 /* CreatorChannelLiveTabView.swift in Sources */, 401B3F082FEEF10000A5BBA3 /* MainHomeRankingViewModel.swift in Sources */, diff --git a/SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveReplayListItem.swift b/SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift similarity index 95% rename from SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveReplayListItem.swift rename to SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift index 1bda0252..ada9535e 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveReplayListItem.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift @@ -1,6 +1,6 @@ import SwiftUI -struct CreatorChannelLiveReplayListItem: View { +struct CreatorChannelAudioContentListItem: View { let audioContent: CreatorChannelAudioContentResponse let action: () -> Void @@ -144,10 +144,10 @@ struct CreatorChannelLiveReplayListItem: View { } } -struct CreatorChannelLiveReplayListItem_Previews: PreviewProvider { +struct CreatorChannelAudioContentListItem_Previews: PreviewProvider { static var previews: some View { VStack(spacing: SodaSpacing.s8) { - CreatorChannelLiveReplayListItem( + CreatorChannelAudioContentListItem( audioContent: CreatorChannelAudioContentResponse( audioContentId: 1, title: "라이브 다시듣기 제목이 두 줄까지 표시됩니다", @@ -164,7 +164,7 @@ struct CreatorChannelLiveReplayListItem_Previews: PreviewProvider { ) ) - CreatorChannelLiveReplayListItem( + CreatorChannelAudioContentListItem( audioContent: CreatorChannelAudioContentResponse( audioContentId: 1, title: "라이브 다시듣기 제목이 두 줄까지 표시됩니다", @@ -181,7 +181,7 @@ struct CreatorChannelLiveReplayListItem_Previews: PreviewProvider { ) ) - CreatorChannelLiveReplayListItem( + CreatorChannelAudioContentListItem( audioContent: CreatorChannelAudioContentResponse( audioContentId: 1, title: "라이브 다시듣기 제목이 두 줄까지 표시됩니다", @@ -198,7 +198,7 @@ struct CreatorChannelLiveReplayListItem_Previews: PreviewProvider { ) ) - CreatorChannelLiveReplayListItem( + CreatorChannelAudioContentListItem( audioContent: CreatorChannelAudioContentResponse( audioContentId: 1, title: "라이브 다시듣기 제목이 두 줄까지 표시됩니다", diff --git a/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioSection.swift b/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioSection.swift index 782090cf..dda24d91 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioSection.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioSection.swift @@ -30,7 +30,7 @@ struct CreatorChannelAudioSection: View { ForEach(audioContentColumns.indices, id: \.self) { index in VStack(alignment: .leading, spacing: SodaSpacing.s8) { ForEach(audioContentColumns[index]) { audioContent in - CreatorChannelAudioContentListItem(audioContent: audioContent) { + CreatorChannelHomeAudioContentListItem(audioContent: audioContent) { onTapContent(audioContent.audioContentId) } } diff --git a/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioContentListItem.swift b/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelHomeAudioContentListItem.swift similarity index 96% rename from SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioContentListItem.swift rename to SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelHomeAudioContentListItem.swift index 8969c0c6..6f1cfc7f 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioContentListItem.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelHomeAudioContentListItem.swift @@ -1,6 +1,6 @@ import SwiftUI -struct CreatorChannelAudioContentListItem: View { +struct CreatorChannelHomeAudioContentListItem: View { let audioContent: CreatorChannelAudioContentResponse let action: () -> Void @@ -147,9 +147,9 @@ struct CreatorChannelAudioFreeTag: View { } } -struct CreatorChannelAudioContentListItem_Previews: PreviewProvider { +struct CreatorChannelHomeAudioContentListItem_Previews: PreviewProvider { static var previews: some View { - CreatorChannelAudioContentListItem( + CreatorChannelHomeAudioContentListItem( audioContent: CreatorChannelAudioContentResponse( audioContentId: 1, title: "콘텐츠 이름이 한 줄 콘텐츠 이름이 한 줄 콘텐츠 이름이 한 줄", diff --git a/SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift b/SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift index 311c0725..9cb046bb 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift @@ -54,7 +54,7 @@ struct CreatorChannelLiveTabView: View { .padding(.bottom, SodaSpacing.s12) ForEach(viewModel.liveReplayContents) { audioContent in - CreatorChannelLiveReplayListItem(audioContent: audioContent) { + CreatorChannelAudioContentListItem(audioContent: audioContent) { onTapContent(audioContent.audioContentId) } .onAppear { diff --git a/docs/20260703_크리에이터_채널_라이브_탭/plan-task.md b/docs/20260703_크리에이터_채널_라이브_탭/plan-task.md index 54669e2d..00b4c66e 100644 --- a/docs/20260703_크리에이터_채널_라이브_탭/plan-task.md +++ b/docs/20260703_크리에이터_채널_라이브_탭/plan-task.md @@ -40,7 +40,7 @@ - `SodaLive/Sources/V2/CreatorChannel/Live/Repository/CreatorChannelLiveRepository.swift` - `SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveViewModel.swift` - `SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift` -- `SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveReplayListItem.swift` +- `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift` - `SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveStartButton.swift` ### 수정 @@ -51,7 +51,7 @@ ### 확인 - `SodaLive/Sources/V2/CreatorChannel/Home/Models/CreatorChannelHomeResponse.swift` - `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelCurrentLiveSection.swift` -- `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioContentListItem.swift` +- `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelHomeAudioContentListItem.swift` - `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelFloatingActionMenu.swift` - `SodaLive/Sources/App/AppStep.swift` - `SodaLive/Sources/ContentView.swift` @@ -260,9 +260,51 @@ - 실행 명령: `rg "isOwnCreatorChannel && viewModel\\.selectedTab == \\.home|isCreatorActionMenuPresented = false|CreatorChannelLiveTabView" SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift` - 기대 결과: 홈 floating menu와 라이브 하단 CTA 표시 조건이 분리되어 있다. -### Phase 6: 검증 +### Phase 6: 오디오 콘텐츠 아이템 컴포넌트 명명 리팩토링 -- [ ] **Task 6.1: 정적 검색 검증** +- [x] **Task 6.1: 공용 오디오 콘텐츠 아이템 이동과 이름 변경** + - 대상 파일: + - 이동/변경: `SodaLive/Sources/V2/CreatorChannel/Live/Components/CreatorChannelLiveReplayListItem.swift` -> `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift` + - 수정: `SodaLive/Sources/V2/CreatorChannel/Live/CreatorChannelLiveTabView.swift` + - 수정: `SodaLive.xcodeproj/project.pbxproj` + - 작업 내용: + - 여러 탭에서 재사용 가능한 다시듣기 아이템을 `CreatorChannel/Components` 공용 위치로 이동한다. + - 타입명을 `CreatorChannelLiveReplayListItem`에서 `CreatorChannelAudioContentListItem`으로 변경한다. + - 라이브 탭 사용처를 `CreatorChannelAudioContentListItem`으로 변경한다. + - 검증 기준: + - 실행 명령: `rg "CreatorChannelLiveReplayListItem" SodaLive/Sources/V2/CreatorChannel SodaLive.xcodeproj/project.pbxproj` + - 기대 결과: 검색 결과가 없다. + - 실행 명령: `rg "CreatorChannelAudioContentListItem" SodaLive/Sources/V2/CreatorChannel SodaLive.xcodeproj/project.pbxproj` + - 기대 결과: 공용 컴포넌트, 라이브 탭 사용처, 프로젝트 등록이 확인된다. + +- [x] **Task 6.2: 홈 전용 오디오 콘텐츠 아이템 이름 변경** + - 대상 파일: + - 이동/변경: `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioContentListItem.swift` -> `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelHomeAudioContentListItem.swift` + - 수정: `SodaLive/Sources/V2/CreatorChannel/Home/Components/CreatorChannelAudioSection.swift` + - 수정: `SodaLive.xcodeproj/project.pbxproj` + - 작업 내용: + - 홈 탭 전용 아이템 타입명을 `CreatorChannelHomeAudioContentListItem`으로 변경한다. + - 기존 홈 탭 사용처를 `CreatorChannelHomeAudioContentListItem`으로 변경한다. + - 검증 기준: + - 실행 명령: `rg "CreatorChannelHomeAudioContentListItem" SodaLive/Sources/V2/CreatorChannel SodaLive.xcodeproj/project.pbxproj` + - 기대 결과: 홈 전용 컴포넌트, 홈 섹션 사용처, 프로젝트 등록이 확인된다. + +- [x] **Task 6.3: 리팩토링 후 정적/빌드 검증** + - 대상 파일: + - 확인: `SodaLive/Sources/V2/CreatorChannel` + - 확인: `SodaLive.xcodeproj/project.pbxproj` + - 작업 내용: + - rename/move 후 남은 이전 심볼이 없는지 확인한다. + - 프로젝트 파일 문법과 Debug 빌드를 확인한다. + - 검증 기준: + - 실행 명령: `plutil -lint SodaLive.xcodeproj/project.pbxproj` + - 기대 결과: `OK` + - 실행 명령: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` + - 기대 결과: `** BUILD SUCCEEDED **` + +### Phase 7: 검증 + +- [ ] **Task 7.1: 정적 검색 검증** - 대상 파일: - 확인: `SodaLive/Sources/V2/CreatorChannel` - 확인: `SodaLive/Sources/I18n/I18n.swift` @@ -272,7 +314,7 @@ - 실행 명령: `rg "CreatorChannelLiveApi|/api/v2/creator-channels/|/live|URLEncoding.queryString|ContentSort|pageSize|20|page = 0|CreatorChannelSortBar|CreatorChannelSortBottomSheet|CreatorChannelCurrentLiveSection|CreatorChannelLiveReplayListItem|ic_new_create_live|contentDetail\\(contentId:" SodaLive/Sources/V2/CreatorChannel SodaLive/Sources/I18n/I18n.swift` - 기대 결과: PRD 핵심 구현 지점이 모두 검색된다. -- [ ] **Task 6.2: 빌드 검증** +- [ ] **Task 7.2: 빌드 검증** - 대상 파일: - 확인: `SodaLive.xcworkspace` - 작업 내용: @@ -281,7 +323,7 @@ - 실행 명령: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` - 기대 결과: `** BUILD SUCCEEDED **` -- [ ] **Task 6.3: 수동 동작 검증** +- [ ] **Task 7.3: 수동 동작 검증** - 대상 화면: - 타인 크리에이터 채널 라이브 탭 - 본인 크리에이터 채널 라이브 탭 @@ -307,3 +349,4 @@ - 2026-07-03: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build`는 실행했으나, DerivedData `manifest.json` 작성 중 디스크 용량 부족(`No space left on device`, 여유 598Mi)으로 Swift 컴파일 전 실패함. - 2026-07-03: Phase 2.3 보완. 첫 페이지/정렬 변경/다음 페이지 조회 모두 성공 시에만 목록 교체 또는 append를 수행하고, 실패 시 기존 목록과 pagination 상태를 유지하도록 PRD/계획/구현을 정렬함. - 2026-07-04: Phase 4 구현 완료. `CreatorChannelLiveReplayListItem`, `CreatorChannelLiveStartButton`, `CreatorChannelLiveTabView`를 추가하고 `I18n.CreatorChannelLive.startLive` 문구를 추가함. 저장소에 별도 XCTest 파일이 없어 Phase 4는 `rg` 정적 검색, `plutil -lint SodaLive.xcodeproj/project.pbxproj`, `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build`로 검증했으며 `** BUILD SUCCEEDED **`를 확인함. +- 2026-07-04: Phase 6 리팩토링 완료. `CreatorChannelLiveReplayListItem`을 공용 `CreatorChannelAudioContentListItem`으로 이동/이름 변경하고, 홈 전용 `CreatorChannelAudioContentListItem`을 `CreatorChannelHomeAudioContentListItem`으로 변경함. `rg` 정적 검색, `plutil -lint SodaLive.xcodeproj/project.pbxproj`, `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build`로 검증했으며 `** BUILD SUCCEEDED **`를 확인함.