import Foundation import Library import SwiftUI public enum DashboardPage: Int, CaseIterable, Identifiable { public var id: Self { self } case overview case groups case connections } public extension DashboardPage { static func enabledCases() -> [DashboardPage] { var cases: [DashboardPage] = [ .overview, .groups, ] #if !os(tvOS) if Variant.isBeta { cases.append(.connections) } #endif return cases } static func enabledCases(hasGroups: Bool) -> [DashboardPage] { var cases: [DashboardPage] = [.overview] if hasGroups { cases.append(.groups) } #if !os(tvOS) if Variant.isBeta { cases.append(.connections) } #endif return cases } } public extension DashboardPage { var title: String { switch self { case .overview: return String(localized: "Overview") case .groups: return String(localized: "Groups") case .connections: return String(localized: "Connections") } } var label: some View { switch self { case .overview: return Label(title, systemImage: "text.and.command.macwindow") case .groups: return Label(title, systemImage: "rectangle.3.group.fill") case .connections: return Label(title, systemImage: "list.bullet.rectangle.portrait.fill") } } @MainActor func contentView(_ profileList: Binding<[ProfilePreview]>, _ selectedProfileID: Binding, _ systemProxyAvailable: Binding, _ systemProxyEnabled: Binding, _ cardConfigurationVersion: Int) -> some View { Group { switch self { case .overview: OverviewView(profileList, selectedProfileID, systemProxyAvailable, systemProxyEnabled, cardConfigurationVersion: cardConfigurationVersion) case .groups: GroupListView() case .connections: ConnectionListView() } } } }