NCUserStatusExtensions.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
  3. // SPDX-License-Identifier: GPL-3.0-or-later
  4. //
  5. import Foundation
  6. import SwiftUI
  7. extension NCUserStatus {
  8. static func getOnlineIcon() -> some View {
  9. return Image(systemName: "circle.fill").font(.system(size: 16)).symbolRenderingMode(.monochrome).foregroundStyle(.green)
  10. }
  11. static func getAwayIcon() -> some View {
  12. return Image(systemName: "moon.fill").font(.system(size: 16)).symbolRenderingMode(.monochrome).foregroundStyle(.yellow)
  13. }
  14. static func getDoNotDisturbIcon() -> some View {
  15. if #available(iOS 16.1, *) {
  16. return Image(systemName: "wrongwaysign.fill").font(.system(size: 16)).symbolRenderingMode(.palette).foregroundStyle(.white, .red)
  17. }
  18. return Image(systemName: "minus.circle.fill").font(.system(size: 16)).symbolRenderingMode(.palette).foregroundStyle(.white, .red)
  19. }
  20. static func getInvisibleIcon() -> some View {
  21. return Image(systemName: "circle").font(.system(size: 16, weight: .black)).foregroundColor(.primary)
  22. }
  23. static func getUserStatusIcon(userStatus: String) -> any View {
  24. if userStatus == kUserStatusOnline {
  25. return getOnlineIcon()
  26. } else if userStatus == kUserStatusAway {
  27. return getAwayIcon()
  28. } else if userStatus == kUserStatusDND {
  29. return getDoNotDisturbIcon()
  30. } else if userStatus == kUserStatusInvisible {
  31. return getInvisibleIcon()
  32. }
  33. return Image(systemName: "person.fill.questionmark")
  34. }
  35. }