ios_app_v2/yobble/Services/ThemeOption.swift
2025-10-07 03:00:41 +03:00

75 lines
1.8 KiB
Swift

import Foundation
enum ThemeOption: String, CaseIterable, Identifiable {
case system
case oledDark
case lightTest
case dark
case custom
var id: String { rawValue }
var title: String {
switch self {
case .system:
return NSLocalizedString("Системная", comment: "")
case .oledDark:
return NSLocalizedString("OLEG тёмный", comment: "")
case .dark:
return NSLocalizedString("Тёмная", comment: "")
case .lightTest:
return NSLocalizedString("Светлая", comment: "")
case .custom:
return NSLocalizedString("Кастомная", comment: "")
}
}
var note: String? {
switch self {
case .lightTest:
return NSLocalizedString("Тестовая версия", comment: "")
case .dark, .custom:
return NSLocalizedString("Недоступна", comment: "")
default:
return nil
}
}
var isEnabled: Bool {
switch self {
case .dark, .custom:
return false
default:
return true
}
}
var mappedTheme: Theme? {
switch self {
case .system:
return .system
case .oledDark:
return .oledDark
case .lightTest:
return .light
case .dark, .custom:
return nil
}
}
static var ordered: [ThemeOption] {
[.system, .oledDark, .lightTest, .dark, .custom]
}
static func option(for theme: Theme) -> ThemeOption {
switch theme {
case .system:
return .system
case .light:
return .lightTest
case .oledDark:
return .oledDark
}
}
}