Files
sodalive-ios/SodaLive/Sources/V2/Main/Home/Following/MainHomeFollowingView.swift

62 lines
1.9 KiB
Swift

import SwiftUI
struct MainHomeFollowingView: View {
let onTapLive: (Int) -> Void
let onTapCreator: (Int) -> Void
let onTapFollowingAll: () -> Void
let onTapChatTab: () -> Void
let onTapChatRoom: (Int) -> Void
@StateObject private var viewModel = MainHomeFollowingViewModel()
init(
onTapLive: @escaping (Int) -> Void = { _ in },
onTapCreator: @escaping (Int) -> Void = { _ in },
onTapFollowingAll: @escaping () -> Void = {},
onTapChatTab: @escaping () -> Void = {},
onTapChatRoom: @escaping (Int) -> Void = { _ in }
) {
self.onTapLive = onTapLive
self.onTapCreator = onTapCreator
self.onTapFollowingAll = onTapFollowingAll
self.onTapChatTab = onTapChatTab
self.onTapChatRoom = onTapChatRoom
}
var body: some View {
VStack(spacing: 0) {
MainHomeFollowingCreatorSection(
followingCreators: viewModel.response?.followingCreators ?? [],
onTapCreator: onTapCreator,
onTapAll: onTapFollowingAll
)
MainHomeFollowingLiveSection(
onAirLives: viewModel.response?.onAirLives ?? [],
onTapLive: onTapLive
)
if let recentChats = viewModel.response?.recentChats, !recentChats.isEmpty {
MainHomeFollowingChatSection(
recentChats: recentChats,
onTapTitle: onTapChatTab,
onTapChatRoom: onTapChatRoom
)
}
MainPlaceholderTabView(title: "팔로잉")
}
.onAppear {
if viewModel.hasLoaded == false {
viewModel.fetchFollowing()
}
}
}
}
struct MainHomeFollowingView_Previews: PreviewProvider {
static var previews: some View {
MainHomeFollowingView()
}
}