BolusRootView.swift 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import SwiftUI
  2. import Swinject
  3. extension Bolus {
  4. struct RootView: View {
  5. let resolver: Resolver
  6. let waitForSuggestion: Bool
  7. let fetch: Bool
  8. let editMode: Bool
  9. let override: Bool
  10. @StateObject var state = StateModel()
  11. var body: some View {
  12. if state.useCalc {
  13. // show alternative bolus calc based on toggle in bolus calc settings
  14. AlternativeBolusCalcRootView(
  15. resolver: resolver,
  16. waitForSuggestion: waitForSuggestion,
  17. fetch: fetch,
  18. editMode: editMode,
  19. override: override,
  20. state: state
  21. )
  22. } else {
  23. // show iAPS standard bolus calc
  24. DefaultBolusCalcRootView(
  25. resolver: resolver,
  26. waitForSuggestion: waitForSuggestion,
  27. fetch: fetch,
  28. state: state
  29. )
  30. }
  31. }
  32. }
  33. }
  34. // fix iOS 15 bug
  35. struct ActivityIndicator: UIViewRepresentable {
  36. @Binding var isAnimating: Bool
  37. let style: UIActivityIndicatorView.Style
  38. func makeUIView(context _: UIViewRepresentableContext<ActivityIndicator>) -> UIActivityIndicatorView {
  39. UIActivityIndicatorView(style: style)
  40. }
  41. func updateUIView(_ uiView: UIActivityIndicatorView, context _: UIViewRepresentableContext<ActivityIndicator>) {
  42. isAnimating ? uiView.startAnimating() : uiView.stopAnimating()
  43. }
  44. }