From ff460485d69e325e83137e5a9e04ea0afdb6d1bb Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Thu, 17 Sep 2026 14:32:34 +0900 Subject: [PATCH] =?UTF-8?q?feat(channel):=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=EC=9E=90=20=EC=9D=B4=EB=8F=99=EC=9D=84=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive.xcodeproj/project.pbxproj | 4 +-- ...hannelCommunityPostDetailContentView.swift | 31 +++++++++++-------- ...reatorChannelCommunityPostDetailView.swift | 7 ++++- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/SodaLive.xcodeproj/project.pbxproj b/SodaLive.xcodeproj/project.pbxproj index bb61dc9f..0dc1b3ed 100644 --- a/SodaLive.xcodeproj/project.pbxproj +++ b/SodaLive.xcodeproj/project.pbxproj @@ -8945,7 +8945,7 @@ CODE_SIGN_ENTITLEMENTS = SodaLive/SodaLive.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_ASSET_PATHS = "\"SodaLive/Preview Content\""; DEVELOPMENT_TEAM = 3A8QGPMRXM; ENABLE_PREVIEWS = YES; @@ -8986,7 +8986,7 @@ CODE_SIGN_ENTITLEMENTS = SodaLive/SodaLive.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_ASSET_PATHS = "\"SodaLive/Preview Content\""; DEVELOPMENT_TEAM = 3A8QGPMRXM; ENABLE_PREVIEWS = YES; diff --git a/SodaLive/Sources/V2/CreatorChannel/Community/Detail/Components/CreatorChannelCommunityPostDetailContentView.swift b/SodaLive/Sources/V2/CreatorChannel/Community/Detail/Components/CreatorChannelCommunityPostDetailContentView.swift index b4f85d7d..44b5b896 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Community/Detail/Components/CreatorChannelCommunityPostDetailContentView.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Community/Detail/Components/CreatorChannelCommunityPostDetailContentView.swift @@ -6,6 +6,7 @@ struct CreatorChannelCommunityPostDetailContentView: View { let detail: CreatorChannelCommunityPostDetailResponse let onTapLike: () -> Void let onTapPurchase: () -> Void + let onTapCreator: () -> Void @StateObject private var playManager = CreatorCommunityMediaPlayerManager.shared @StateObject private var contentPlayManager = ContentPlayManager.shared @@ -49,22 +50,26 @@ struct CreatorChannelCommunityPostDetailContentView: View { private var header: some View { HStack(spacing: SodaSpacing.s8) { - DownsampledKFImage(url: URL(string: detail.creatorProfileUrl), size: CGSize(width: 42, height: 42)) - .background(Color.gray800) - .clipShape(Circle()) - .frame(width: 42, height: 42) + HStack(spacing: SodaSpacing.s8) { + DownsampledKFImage(url: URL(string: detail.creatorProfileUrl), size: CGSize(width: 42, height: 42)) + .background(Color.gray800) + .clipShape(Circle()) + .frame(width: 42, height: 42) - VStack(alignment: .leading, spacing: 2) { - Text(detail.creatorNickname) - .appFont(size: 14, weight: .medium) - .foregroundColor(.white) - .lineLimit(1) + VStack(alignment: .leading, spacing: 2) { + Text(detail.creatorNickname) + .appFont(size: 14, weight: .medium) + .foregroundColor(.white) + .lineLimit(1) - Text(detail.relativeTimeText()) - .appFont(size: 14, weight: .regular) - .foregroundColor(Color.gray500) - .lineLimit(1) + Text(detail.relativeTimeText()) + .appFont(size: 14, weight: .regular) + .foregroundColor(Color.gray500) + .lineLimit(1) + } } + .contentShape(Rectangle()) + .onTapGesture(perform: onTapCreator) Spacer(minLength: 0) } diff --git a/SodaLive/Sources/V2/CreatorChannel/Community/Detail/CreatorChannelCommunityPostDetailView.swift b/SodaLive/Sources/V2/CreatorChannel/Community/Detail/CreatorChannelCommunityPostDetailView.swift index d0e22b20..0bc4f773 100644 --- a/SodaLive/Sources/V2/CreatorChannel/Community/Detail/CreatorChannelCommunityPostDetailView.swift +++ b/SodaLive/Sources/V2/CreatorChannel/Community/Detail/CreatorChannelCommunityPostDetailView.swift @@ -19,7 +19,8 @@ struct CreatorChannelCommunityPostDetailView: View { CreatorChannelCommunityPostDetailContentView( detail: detail, onTapLike: viewModel.toggleLike, - onTapPurchase: viewModel.presentPurchaseDialog + onTapPurchase: viewModel.presentPurchaseDialog, + onTapCreator: { showCreatorChannel(creatorId: detail.creatorId) } ) if viewModel.isCommentInteractionAvailable { @@ -120,4 +121,8 @@ struct CreatorChannelCommunityPostDetailView: View { ) } + private func showCreatorChannel(creatorId: Int) { + AppState.shared.setAppStep(step: .creatorDetail(userId: creatorId)) + } + }