Files
sodalive-ios/SodaLive/Sources/V2/CreatorChannel/Home/CreatorChannelHomeView.swift

91 lines
3.0 KiB
Swift

import SwiftUI
struct CreatorChannelHomeView: View {
let response: CreatorChannelHomeResponse
let onSelectTab: (CreatorChannelTab) -> Void
let onTapLive: (Int) -> Void
let onTapContent: (Int) -> Void
let onTapDonate: () -> Void
let onTapSchedule: (CreatorActivityType, Int) -> Void
let onTapSeries: (Int) -> Void
let onTapCommunityLike: (Int) -> Void
init(
response: CreatorChannelHomeResponse,
onSelectTab: @escaping (CreatorChannelTab) -> Void,
onTapLive: @escaping (Int) -> Void = { _ in },
onTapContent: @escaping (Int) -> Void = { _ in },
onTapDonate: @escaping () -> Void = {},
onTapSchedule: @escaping (CreatorActivityType, Int) -> Void = { _, _ in },
onTapSeries: @escaping (Int) -> Void = { _ in },
onTapCommunityLike: @escaping (Int) -> Void = { _ in }
) {
self.response = response
self.onSelectTab = onSelectTab
self.onTapLive = onTapLive
self.onTapContent = onTapContent
self.onTapDonate = onTapDonate
self.onTapSchedule = onTapSchedule
self.onTapSeries = onTapSeries
self.onTapCommunityLike = onTapCommunityLike
}
var body: some View {
VStack(alignment: .leading, spacing: 0) {
CreatorChannelCurrentLiveSection(
currentLive: response.currentLive,
onTapLive: onTapLive
)
CreatorChannelLatestAudioSection(
latestAudioContent: response.latestAudioContent,
onTapContent: onTapContent
)
CreatorChannelDonationSection(
channelDonations: response.channelDonations,
onSelectTab: onSelectTab,
onTapDonate: onTapDonate
)
CreatorChannelNoticeSection(notices: response.notices)
CreatorChannelScheduleSection(
schedules: response.schedules,
onTapSchedule: onTapSchedule
)
CreatorChannelAudioSection(
audioContents: response.audioContents,
onSelectTab: onSelectTab,
onTapContent: onTapContent
)
CreatorChannelSeriesSection(
series: response.series,
onSelectTab: onSelectTab,
onTapSeries: onTapSeries
)
CreatorChannelCommunitySection(
communities: response.communities,
onSelectTab: onSelectTab,
onTapLike: onTapCommunityLike
)
CreatorChannelFanTalkSection(
fanTalk: response.fanTalk,
onSelectTab: onSelectTab
)
CreatorChannelIntroduceSection(introduce: response.introduce)
CreatorChannelActivitySection(activity: response.activity)
CreatorChannelSnsSection(sns: response.sns)
}
.frame(maxWidth: .infinity, alignment: .leading)
.background(Color.black)
}
}