68 lines
2.3 KiB
Swift
68 lines
2.3 KiB
Swift
//
|
|
// InstagramView.swift
|
|
// Example (iOS)
|
|
//
|
|
// Copyright © 2021 Xmartlabs SRL. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import PagerTabStrip
|
|
|
|
struct InstagramView: View {
|
|
|
|
@State var selection = 1
|
|
|
|
@ObservedObject var galleryModel = GalleryModel()
|
|
@ObservedObject var listModel = ListModel()
|
|
@ObservedObject var likedModel = LikedModel()
|
|
@ObservedObject var savedModel = SavedModel()
|
|
|
|
var body: some View {
|
|
PagerTabStripView(selection: $selection) {
|
|
PostsList(isLoading: $galleryModel.isLoading, items: galleryModel.posts).pagerTabItem {
|
|
InstagramNavBarItem(imageName: "gallery")
|
|
}.onPageAppear {
|
|
galleryModel.isLoading = true
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
|
|
galleryModel.isLoading = false
|
|
}
|
|
}
|
|
|
|
PostsList(isLoading: $listModel.isLoading, items: listModel.posts, withDescription: false).pagerTabItem {
|
|
InstagramNavBarItem(imageName: "list")
|
|
}.onPageAppear {
|
|
listModel.isLoading = true
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
|
|
listModel.isLoading = false
|
|
}
|
|
}
|
|
|
|
PostsList(isLoading: $likedModel.isLoading, items: likedModel.posts).pagerTabItem {
|
|
InstagramNavBarItem(imageName: "liked")
|
|
}.onPageAppear {
|
|
likedModel.isLoading = true
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
|
|
likedModel.isLoading = false
|
|
}
|
|
}
|
|
|
|
PostsList(isLoading: $savedModel.isLoading, items: savedModel.posts, withDescription: false).pagerTabItem {
|
|
InstagramNavBarItem(imageName: "saved")
|
|
}.onPageAppear {
|
|
savedModel.isLoading = true
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
|
|
savedModel.isLoading = false
|
|
}
|
|
}
|
|
}
|
|
.pagerTabStripViewStyle(PagerTabViewStyle(tabItemSpacing: 0, tabItemHeight: 50, indicatorBarColor: .black))
|
|
.frame(alignment: .center)
|
|
}
|
|
}
|
|
|
|
struct InstagramView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
InstagramView()
|
|
}
|
|
}
|