Router.swift 616 B

12345678910111213141516171819202122232425
  1. import Combine
  2. import SwiftUI
  3. import Swinject
  4. protocol Router {
  5. var mainModalScreen: CurrentValueSubject<Screen?, Never> { get }
  6. var alertMessage: PassthroughSubject<String, Never> { get }
  7. func view(for screen: Screen) -> AnyView
  8. }
  9. final class BaseRouter: Router {
  10. let mainModalScreen = CurrentValueSubject<Screen?, Never>(nil)
  11. let alertMessage = PassthroughSubject<String, Never>()
  12. private let resolver: Resolver
  13. init(resolver: Resolver) {
  14. self.resolver = resolver
  15. }
  16. func view(for screen: Screen) -> AnyView {
  17. screen.view(resolver: resolver).asAny()
  18. }
  19. }