mirror of
https://github.com/yattee/yattee.git
synced 2024-12-22 21:43:41 +00:00
53 lines
1.7 KiB
Swift
53 lines
1.7 KiB
Swift
import SwiftUI
|
|
|
|
struct TrendingView: View {
|
|
@EnvironmentObject private var state: AppState
|
|
@EnvironmentObject private var trendingState: TrendingState
|
|
|
|
@Binding var tabSelection: TabSelection
|
|
|
|
@ObservedObject private var countriesProvider = TrendingCountriesProvider()
|
|
@ObservedObject private var videosProvider = TrendingVideosProvider()
|
|
|
|
@State private var selectingCategory = false
|
|
@State private var selectingCountry = false
|
|
|
|
var body: some View {
|
|
Section {
|
|
VStack(alignment: .leading, spacing: 2) {
|
|
HStack(alignment: .top) {
|
|
Spacer()
|
|
|
|
Button(trendingState.category.name) {
|
|
selectingCategory.toggle()
|
|
}
|
|
.fullScreenCover(isPresented: $selectingCategory) {
|
|
TrendingCategorySelectionView(selectedCategory: $trendingState.category)
|
|
}
|
|
|
|
Text(trendingState.country.flag)
|
|
.font(.system(size: 60))
|
|
|
|
Button(trendingState.country.rawValue) {
|
|
selectingCountry.toggle()
|
|
}
|
|
.fullScreenCover(isPresented: $selectingCountry) {
|
|
TrendingCountrySelectionView(provider: countriesProvider, selectedCountry: $trendingState.country)
|
|
}
|
|
|
|
Spacer()
|
|
}
|
|
.scaleEffect(0.85)
|
|
|
|
VideosView(tabSelection: $tabSelection, videos: videos)
|
|
}
|
|
}
|
|
}
|
|
|
|
var videos: [Video] {
|
|
videosProvider.load(category: trendingState.category, country: trendingState.country)
|
|
|
|
return videosProvider.videos
|
|
}
|
|
}
|