import SwiftUI @MainActor @Observable final class FrontPageViewModel { private static let redditHomeURL = URL(string: "https://www.reddit.com")! private(set) var redditLoadURL = redditHomeURL var selectedNavItem: SidebarNavItem? var isRedditActive = true var isSettingsActive = false var isPaywallPresented = false var authErrorMessage: String? private(set) var redditReloadTrigger = 0 private(set) var redditGoBackTrigger = 0 var redditCanGoBack = false static let settingsItem = SidebarNavItem( title: "Settings", subtitle: "Manage app preferences", iconKind: .settings ) func openReddit(at url: URL? = nil) { selectedNavItem = nil isRedditActive = true isSettingsActive = false redditLoadURL = url ?? Self.redditHomeURL redditReloadTrigger += 1 } func showAuthError(_ message: String) { authErrorMessage = message } func clearAuthError() { authErrorMessage = nil } func goBackInReddit() { guard redditCanGoBack else { return } redditGoBackTrigger += 1 } func updateRedditCanGoBack(_ canGoBack: Bool) { redditCanGoBack = canGoBack } func openSettings() { selectedNavItem = nil isRedditActive = false isSettingsActive = true } func selectNavItem(_ item: SidebarNavItem) { selectedNavItem = item isRedditActive = false isSettingsActive = false } func showPaywall() { isPaywallPresented = true } func dismissPaywall() { isPaywallPresented = false } let createItems: [SidebarNavItem] = [ SidebarNavItem(title: "Post Generator", subtitle: "Generate engaging posts", iconKind: .postGenerator), SidebarNavItem(title: "Title Optimizer", subtitle: "Create viral titles", iconKind: .titleOptimizer), SidebarNavItem(title: "Comment Writer", subtitle: "Write smart replies", iconKind: .commentWriter), ] }