Ferrite-backup/Ferrite/FerriteApp.swift
kingbri 7202a95bb2 Ferrite: Parallel tasks and logging
Make all tasks run in parallel to increase responsiveness and efficiency
when fetching new data.

However, parallel tasks means that toast errors are no longer feasible.
Instead, add a logging system which has a more detailed view of
app messages and direct the user there if there is an error.

Signed-off-by: kingbri <bdashore3@proton.me>
2023-03-09 18:48:28 -05:00

40 lines
1.3 KiB
Swift

//
// FerriteApp.swift
// Ferrite
//
// Created by Brian Dashore on 7/1/22.
//
import SwiftUI
@main
struct FerriteApp: App {
let persistenceController = PersistenceController.shared
@StateObject var scrapingModel: ScrapingViewModel = .init()
@StateObject var logManager: LoggingManager = .init()
@StateObject var debridManager: DebridManager = .init()
@StateObject var navModel: NavigationViewModel = .init()
@StateObject var pluginManager: PluginManager = .init()
@StateObject var backupManager: BackupManager = .init()
var body: some Scene {
WindowGroup {
MainView()
.backport.onAppear {
scrapingModel.logManager = logManager
debridManager.logManager = logManager
pluginManager.logManager = logManager
backupManager.logManager = logManager
navModel.logManager = logManager
}
.environmentObject(debridManager)
.environmentObject(scrapingModel)
.environmentObject(logManager)
.environmentObject(navModel)
.environmentObject(pluginManager)
.environmentObject(backupManager)
.environment(\.managedObjectContext, persistenceController.container.viewContext)
}
}
}