import Combine import SwiftUI @main struct RedditAppApp: App { @NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate @StateObject private var subscriptions = SubscriptionManager() @StateObject private var appRating = AppRatingManager() @State private var appearanceManager = AppearanceManager.shared @State private var splashViewModel = SplashViewModel() @State private var session = AppSessionState() var body: some Scene { Window(AppLinks.appName, id: "main-window") { RootView(session: session, splashViewModel: splashViewModel) .environmentObject(subscriptions) .environmentObject(appRating) .environment(appearanceManager) .preferredColorScheme(appearanceManager.isDarkMode ? .dark : .light) .background { MainWindowLifecycleConfigurator() } .task { subscriptions.start() PaywallConfigService.shared.start() } } .defaultSize(width: AppWindow.width, height: AppWindow.height) .defaultPosition(.center) .windowStyle(.hiddenTitleBar) .commands { CommandGroup(replacing: .newItem) {} MainWindowReopenCommands() } } } private struct MainWindowReopenCommands: Commands { @Environment(\.openWindow) private var openWindow var body: some Commands { CommandGroup(after: .windowList) { Button("Show Main Window") { openWindow(id: "main-window") (NSApp.delegate as? AppDelegate)?.showMainWindow() } .keyboardShortcut("0", modifiers: .command) } } }