diff --git a/SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift b/SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift index 98ad86d4..7085b6df 100644 --- a/SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift +++ b/SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift @@ -292,7 +292,8 @@ struct CreatorChannelView: View { isOwnCreatorChannel: isOwnCreatorChannel, viewModel: fanTalkViewModel, onTapWrite: showFanTalkWriteView, - onTapEdit: showFanTalkModifyView + onTapEdit: showFanTalkModifyView, + onTapDetail: showFanTalkReplyDetail ) } else if viewModel.selectedTab == .community { CreatorChannelCommunityTabView( @@ -629,6 +630,19 @@ struct CreatorChannelView: View { ) ) } + + private func showFanTalkReplyDetail(_ fanTalk: CreatorChannelFanTalkItemResponse) { + guard isOwnCreatorChannel else { return } + + AppState.shared.setAppStep( + step: .creatorChannelReplyDetail( + context: .fanTalk(creatorId: creatorId, parentFanTalk: fanTalk), + onFanTalkRefresh: { + fanTalkViewModel.fetchFirstPage(creatorId: creatorId) + } + ) + ) + } } struct CreatorChannelView_Previews: PreviewProvider { diff --git a/SodaLive/Sources/V2/CreatorChannel/FanTalk/Components/CreatorChannelFanTalkListItem.swift b/SodaLive/Sources/V2/CreatorChannel/FanTalk/Components/CreatorChannelFanTalkListItem.swift index 8da86db8..6067043b 100644 --- a/SodaLive/Sources/V2/CreatorChannel/FanTalk/Components/CreatorChannelFanTalkListItem.swift +++ b/SodaLive/Sources/V2/CreatorChannel/FanTalk/Components/CreatorChannelFanTalkListItem.swift @@ -6,6 +6,7 @@ struct CreatorChannelFanTalkListItem: View { let isOwnCreatorChannel: Bool let onTapReport: () -> Void let onTapMore: () -> Void + let onTapDetail: () -> Void var body: some View { VStack(alignment: .leading, spacing: 0) { @@ -41,6 +42,8 @@ struct CreatorChannelFanTalkListItem: View { .frame(height: 1) } .background(Color.black) + .contentShape(Rectangle()) + .onTapGesture(perform: onTapDetail) } private var header: some View { diff --git a/SodaLive/Sources/V2/CreatorChannel/FanTalk/CreatorChannelFanTalkTabView.swift b/SodaLive/Sources/V2/CreatorChannel/FanTalk/CreatorChannelFanTalkTabView.swift index e8c575e0..43c7ee87 100644 --- a/SodaLive/Sources/V2/CreatorChannel/FanTalk/CreatorChannelFanTalkTabView.swift +++ b/SodaLive/Sources/V2/CreatorChannel/FanTalk/CreatorChannelFanTalkTabView.swift @@ -6,6 +6,7 @@ struct CreatorChannelFanTalkTabView: View { @ObservedObject var viewModel: CreatorChannelFanTalkViewModel let onTapWrite: () -> Void let onTapEdit: (CreatorChannelFanTalkItemResponse) -> Void + let onTapDetail: (CreatorChannelFanTalkItemResponse) -> Void @State private var actionPopupFanTalk: CreatorChannelFanTalkItemResponse? @State private var fanTalkItemFrames = [Int: CGRect]() @@ -76,6 +77,11 @@ struct CreatorChannelFanTalkTabView: View { }, onTapMore: { actionPopupFanTalk = actionPopupFanTalk?.fanTalkId == fanTalk.fanTalkId ? nil : fanTalk + }, + onTapDetail: { + guard isOwnCreatorChannel else { return } + actionPopupFanTalk = nil + onTapDetail(fanTalk) } ) .background {