MainRootView.swift 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import SwiftUI
  2. import Swinject
  3. extension Main {
  4. struct RootView: BaseView {
  5. let resolver: Resolver
  6. @StateObject var state = StateModel()
  7. @EnvironmentObject var appDelegate: AppDelegate
  8. var body: some View {
  9. router.view(for: .home)
  10. .sheet(isPresented: $state.isModalPresented) {
  11. NavigationView { self.state.modal!.view }
  12. .navigationViewStyle(StackNavigationViewStyle())
  13. }
  14. .sheet(isPresented: $state.isSecondaryModalPresented) {
  15. if let view = state.secondaryModalView {
  16. view
  17. } else {
  18. EmptyView()
  19. }
  20. }
  21. .alert(isPresented: $state.isAlertPresented) {
  22. Alert(
  23. title: Text("Important message"),
  24. message: Text(state.alertMessage),
  25. dismissButton: .default(Text("Dismiss")) {
  26. state.isAlertPresented = false
  27. state.alertMessage = ""
  28. }
  29. )
  30. }
  31. .onAppear(perform: configureView)
  32. .onReceive(appDelegate.$notificationAction) { action in
  33. switch action {
  34. case .snoozeAlert:
  35. state.showModal(for: .libreConfig)
  36. default: break
  37. }
  38. }
  39. }
  40. }
  41. }