| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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)
- }
- }
- }
|