GlucoseArrowView.swift 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import SwiftUI
  2. struct GlucoseArrowView: View {
  3. let direction: BloodGlucose.Direction
  4. var body: some View {
  5. arrowImage
  6. .foregroundColor(Color(.systemBlue))
  7. .informationBarEntryStyle()
  8. }
  9. }
  10. extension GlucoseArrowView {
  11. var arrowImage: Image {
  12. let arrow: String
  13. let up = "arrow.up"
  14. let upForward = "arrow.up.forward"
  15. let forward = "arrow.forward"
  16. let downForward = "arrow.down.forward"
  17. let down = "arrow.down"
  18. let error = "arrow.left.arrow.right"
  19. switch direction {
  20. case .doubleUp,
  21. .singleUp,
  22. .tripleUp:
  23. arrow = up
  24. case .fortyFiveUp:
  25. arrow = upForward
  26. case .flat:
  27. arrow = forward
  28. case .fortyFiveDown:
  29. arrow = downForward
  30. case .doubleDown,
  31. .singleDown,
  32. .tripleDown:
  33. arrow = down
  34. case .none,
  35. .notComputable,
  36. .rateOutOfRange:
  37. arrow = error
  38. }
  39. return Image(systemName: arrow)
  40. }
  41. }
  42. struct GlucoseArrowView_Previews: PreviewProvider {
  43. static var previews: some View {
  44. GlucoseArrowView(direction: .fortyFiveDown)
  45. .frame(
  46. width: 100,
  47. height: 100,
  48. alignment: .center
  49. )
  50. .preferredColorScheme(/*@START_MENU_TOKEN@*/ .dark/*@END_MENU_TOKEN@*/)
  51. }
  52. }