RedditAppApp.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import Combine
  2. import SwiftUI
  3. @main
  4. struct RedditAppApp: App {
  5. @NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
  6. @StateObject private var subscriptions = SubscriptionManager()
  7. @StateObject private var appRating = AppRatingManager()
  8. @State private var appearanceManager = AppearanceManager.shared
  9. @State private var splashViewModel = SplashViewModel()
  10. @State private var session = AppSessionState()
  11. var body: some Scene {
  12. Window(AppLinks.appName, id: "main-window") {
  13. RootView(session: session, splashViewModel: splashViewModel)
  14. .environmentObject(subscriptions)
  15. .environmentObject(appRating)
  16. .environment(appearanceManager)
  17. .preferredColorScheme(appearanceManager.isDarkMode ? .dark : .light)
  18. .background {
  19. MainWindowLifecycleConfigurator()
  20. }
  21. .task {
  22. subscriptions.start()
  23. PaywallConfigService.shared.start()
  24. }
  25. }
  26. .defaultSize(width: AppWindow.width, height: AppWindow.height)
  27. .defaultPosition(.center)
  28. .windowStyle(.hiddenTitleBar)
  29. .commands {
  30. CommandGroup(replacing: .newItem) {}
  31. }
  32. }
  33. }