import Foundation /// Was in der Seitenleiste steht. /// /// Die Mediatheken kommen erst zur Laufzeit vom Server, deshalb trägt /// `library` den Schlüssel des Abschnitts statt eines festen Falls. enum SidebarDestination: Hashable { case home case library(key: String, title: String) case search case liveTV case downloads case settings /// Der Titel in der Navigationsleiste. /// /// Auf der Startseite steht dort der Name der App — in der Seitenleiste /// wäre das nur eine Dopplung der Überschrift, deshalb hat sie mit /// `sidebarLabel` einen eigenen Text. var title: String { switch self { case .home: Branding.appName case .library(_, let title): title case .search: String(localized: "search.title") case .liveTV: String(localized: "sidebar.liveTV") case .downloads: String(localized: "sidebar.downloads") case .settings: String(localized: "sidebar.settings") } } /// Die Beschriftung in der Seitenleiste. var sidebarLabel: String { switch self { case .home: String(localized: "sidebar.home") default: title } } var symbol: String { switch self { case .home: "house" case .library: "film" case .search: "magnifyingglass" case .liveTV: "dot.radiowaves.left.and.right" case .downloads: "arrow.down.circle" case .settings: "gearshape" } } }