| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
- private(set) var redditReloadTrigger = 0
- static let settingsItem = SidebarNavItem(
- title: "Settings",
- subtitle: "Preferences & API keys",
- iconKind: .settings
- )
- func openReddit(at url: URL? = nil) {
- selectedNavItem = nil
- isRedditActive = true
- isSettingsActive = false
- redditLoadURL = url ?? Self.redditHomeURL
- redditReloadTrigger += 1
- }
- 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),
- ]
- }
|