yattee/Shared/PearvidiousApp.swift

51 lines
1.4 KiB
Swift
Raw Normal View History

2021-09-25 08:18:22 +00:00
import Defaults
2021-06-09 20:51:23 +00:00
import SwiftUI
@main
struct PearvidiousApp: App {
2021-09-25 08:18:22 +00:00
@StateObject private var api = InvidiousAPI()
@StateObject private var instances = InstancesModel()
@StateObject private var playlists = PlaylistsModel()
@StateObject private var search = SearchModel()
@StateObject private var subscriptions = SubscriptionsModel()
2021-06-09 20:51:23 +00:00
var body: some Scene {
WindowGroup {
ContentView()
2021-09-25 08:18:22 +00:00
.onAppear(perform: configureAPI)
.environmentObject(api)
.environmentObject(instances)
.environmentObject(playlists)
.environmentObject(search)
.environmentObject(subscriptions)
2021-06-09 20:51:23 +00:00
}
2021-07-27 22:40:04 +00:00
#if !os(tvOS)
.commands {
SidebarCommands()
}
#endif
2021-09-25 08:18:22 +00:00
#if os(macOS)
Settings {
SettingsView()
.onAppear(perform: configureAPI)
.environmentObject(api)
.environmentObject(instances)
.environmentObject(playlists)
.environmentObject(subscriptions)
}
#endif
}
fileprivate func configureAPI() {
subscriptions.api = api
playlists.api = api
guard api.account == nil, instances.defaultAccount != nil else {
return
}
api.setAccount(instances.defaultAccount)
2021-06-09 20:51:23 +00:00
}
}