PagerTabStripView/Example/Shared/TwitterView.swift

57 lines
1.8 KiB
Swift

//
// TwitterView.swift
// Example (iOS)
//
// Copyright © 2021 Xmartlabs SRL. All rights reserved.
//
import SwiftUI
import PagerTabStrip
struct TwitterView: View {
@State var selection = 2
@ObservedObject var tweetsModel = TweetsModel()
@ObservedObject var mediaModel = MediaModel()
@ObservedObject var likesModel = LikesModel()
var body: some View {
PagerTabStripView(selection: $selection) {
PostsList(isLoading: $tweetsModel.isLoading, items: tweetsModel.posts).pagerTabItem {
TwitterNavBarItem(title: "Tweets")
}.onPageAppear {
tweetsModel.isLoading = true
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
tweetsModel.isLoading = false
}
}
PostsList(isLoading: $mediaModel.isLoading, items: mediaModel.posts).pagerTabItem {
TwitterNavBarItem(title: "Media")
}.onPageAppear {
mediaModel.isLoading = true
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
mediaModel.isLoading = false
}
}
PostsList(isLoading: $likesModel.isLoading, items: likesModel.posts, withDescription: false).pagerTabItem {
TwitterNavBarItem(title: "Likes")
}.onPageAppear {
likesModel.isLoading = true
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
likesModel.isLoading = false
}
}
}
.frame(alignment: .center)
.pagerTabStripViewStyle(PagerTabViewStyle(tabItemSpacing: 0, tabItemHeight: 50, indicatorBarColor: .blue))
}
}
struct TwitterView_Previews: PreviewProvider {
static var previews: some View {
TwitterView()
}
}