AppearanceMode.swift 952 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // LoopFollow
  2. // AppearanceMode.swift
  3. import SwiftUI
  4. extension Notification.Name {
  5. static let appearanceDidChange = Notification.Name("appearanceDidChange")
  6. }
  7. enum AppearanceMode: String, CaseIterable, Codable {
  8. case system
  9. case light
  10. case dark
  11. var displayName: String {
  12. switch self {
  13. case .system: return "System"
  14. case .light: return "Light"
  15. case .dark: return "Dark"
  16. }
  17. }
  18. /// Returns the ColorScheme for SwiftUI's preferredColorScheme modifier
  19. var colorScheme: ColorScheme? {
  20. switch self {
  21. case .system: return nil
  22. case .light: return .light
  23. case .dark: return .dark
  24. }
  25. }
  26. /// Returns the UIUserInterfaceStyle for UIKit views
  27. var userInterfaceStyle: UIUserInterfaceStyle {
  28. switch self {
  29. case .system: return .unspecified
  30. case .light: return .light
  31. case .dark: return .dark
  32. }
  33. }
  34. }