// // StackRouter.swift // ReviewsCoordinationKit // // Created by Javier Cicchelli on 21/03/2024. // Copyright © 2024 Röck+Cöde. All rights reserved. // import UIKit public class StackRouter: BaseNavigationRouter { // MARK: Constants private let rootViewController: UIViewController? // MARK: Initialisers public init( _ navigationController: UINavigationController, rootViewController: UIViewController? = nil ) { self.rootViewController = navigationController.viewControllers.first ?? rootViewController super.init(navigationController: navigationController) } } // MARK: - Router extension StackRouter: Router { // MARK: Functions public func present( _ viewController: UIViewController, animated: Bool, onDismiss: OnDismissClosure? = nil ) { onDismissForViewController[viewController] = onDismiss navigationController.pushViewController(viewController, animated: animated) } public func dismiss(animated: Bool) { guard let rootViewController else { navigationController.popViewController(animated: animated) return } performOnDismiss(for: rootViewController) navigationController.popToViewController( rootViewController, animated: animated ) } }