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 ( ) )
2022-07-04 01:52:57 +05:30
. environmentObject ( SettingsModel ( ) )
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 ( )
2022-07-05 22:51:01 +05:30
player . currentItem = PlayerQueueItem ( Video ( videoID : " " , title : " " , author : " " , length : 0 , published : " 2 days ago " , views : 43434 , channel : . init ( id : " " , name : " " ) , likes : 2332 , dislikes : 30 ) )
2021-10-06 01:50:09 +05:30
player . queue = Video . allFixtures . map { PlayerQueueItem ( $0 ) }
2022-07-05 22:51:01 +05:30
player . videoBeingOpened = Video . fixture
2021-10-06 01:50:09 +05:30
return player
}
2022-06-18 18:09:49 +05:30
private var playerControls : PlayerControlsModel {
2022-07-05 22:51:01 +05:30
PlayerControlsModel ( presentingControls : true , presentingControlsOverlay : true , player : player )
2022-06-18 18:09:49 +05:30
}
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 ( ) )
}
}