80 lines
2.6 KiB
Swift
80 lines
2.6 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
|
|
)
|
|
}
|
|
.frame(maxWidth: .infinity, alignment: .leading)
|
|
.background(Color.black)
|
|
}
|
|
}
|