2021-09-29 17:15:00 +05:30
|
|
|
import Foundation
|
|
|
|
import SwiftUI
|
|
|
|
|
|
|
|
struct FixtureEnvironmentObjectsModifier: ViewModifier {
|
|
|
|
func body(content: Content) -> some View {
|
|
|
|
content
|
2021-10-18 04:36:00 +05:30
|
|
|
.environmentObject(AccountsModel())
|
2022-06-25 05:09:29 +05:30
|
|
|
.environmentObject(comments)
|
2021-09-29 17:15:00 +05:30
|
|
|
.environmentObject(InstancesModel())
|
2022-07-02 02:58:32 +05:30
|
|
|
.environmentObject(InstancesManifest())
|
2021-10-18 04:36:00 +05:30
|
|
|
.environmentObject(invidious)
|
2021-09-29 17:15:00 +05:30
|
|
|
.environmentObject(NavigationModel())
|
2022-06-18 18:09:49 +05:30
|
|
|
.environmentObject(NetworkStateModel())
|
2021-10-18 04:36:00 +05:30
|
|
|
.environmentObject(PipedAPI())
|
2021-10-06 01:50:09 +05:30
|
|
|
.environmentObject(player)
|
2022-06-18 18:09:49 +05:30
|
|
|
.environmentObject(playerControls)
|
|
|
|
.environmentObject(PlayerTimeModel())
|
2021-09-29 17:15:00 +05:30
|
|
|
.environmentObject(PlaylistsModel())
|
|
|
|
.environmentObject(RecentsModel())
|
|
|
|
.environmentObject(SearchModel())
|
2021-10-06 01:50:09 +05:30
|
|
|
.environmentObject(subscriptions)
|
2021-11-02 03:26:18 +05:30
|
|
|
.environmentObject(ThumbnailsModel())
|
2021-09-29 18:06:52 +05:30
|
|
|
}
|
|
|
|
|
2022-06-25 05:09:29 +05:30
|
|
|
private var comments: CommentsModel {
|
|
|
|
let comments = CommentsModel()
|
|
|
|
comments.loaded = true
|
|
|
|
comments.all = [.fixture]
|
|
|
|
|
|
|
|
return comments
|
|
|
|
}
|
|
|
|
|
2021-10-18 04:36:00 +05:30
|
|
|
private var invidious: InvidiousAPI {
|
2021-09-29 18:06:52 +05:30
|
|
|
let api = InvidiousAPI()
|
|
|
|
|
|
|
|
api.validInstance = true
|
|
|
|
api.signedIn = true
|
|
|
|
|
|
|
|
return api
|
2021-09-29 17:15:00 +05:30
|
|
|
}
|
2021-10-06 01:50:09 +05:30
|
|
|
|
|
|
|
private var player: PlayerModel {
|
|
|
|
let player = PlayerModel()
|
|
|
|
|
|
|
|
player.currentItem = PlayerQueueItem(Video.fixture)
|
|
|
|
player.queue = Video.allFixtures.map { PlayerQueueItem($0) }
|
|
|
|
|
|
|
|
return player
|
|
|
|
}
|
|
|
|
|
2022-06-18 18:09:49 +05:30
|
|
|
private var playerControls: PlayerControlsModel {
|
|
|
|
PlayerControlsModel(presentingControls: true, player: player)
|
|
|
|
}
|
|
|
|
|
2021-10-06 01:50:09 +05:30
|
|
|
private var subscriptions: SubscriptionsModel {
|
|
|
|
let subscriptions = SubscriptionsModel()
|
|
|
|
|
|
|
|
subscriptions.channels = Video.allFixtures.map { $0.channel }
|
|
|
|
|
|
|
|
return subscriptions
|
|
|
|
}
|
2021-09-29 17:15:00 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
extension View {
|
|
|
|
func injectFixtureEnvironmentObjects() -> some View {
|
|
|
|
modifier(FixtureEnvironmentObjectsModifier())
|
|
|
|
}
|
|
|
|
}
|