Files
2021-12-06 10:53:47 +00:00

46 lines
1.5 KiB
Swift

//
// PreferenceBuilderIPAD.swift
// OpenVPN
//
// Created by Lizaveta Malinouskaya on 26.07.21.
// Copyright © 2021 Privado LLC. All rights reserved.
//
import UIKit
protocol PreferenceModuleInputIPAD: AnyObject {
func navigate(to route: Route.iOSPreference)
}
protocol PreferenceModuleOutputIPAD: AnyObject {
func navigate(to route: Route)
}
final class PreferenceModuleBuilderIPAD {
static func build(output: PreferenceModuleOutputIPAD) -> (view: UIViewController, presenter: PreferenceModuleInputIPAD) {
let presenter = PreferencePresenterIPAD(customerRepo: CustomerRepo.instance, session: Session.shared(), output: output)
let controller = PreferenceViewControllerIPAD(output: presenter, self.create(with: presenter))
let nbViewBuilder = PreferenceNBModuleBuilderIPAD.build(output: presenter)
let navigationBar = nbViewBuilder(controller)
controller.navigationBar = navigationBar.view
controller.navigationBarOutput = navigationBar.presenter
presenter.viewInput = controller
return (controller, presenter)
}
private static func create(with output: OptionsModuleOutputIPAD) -> PreferenceViewControllerIPAD.ComponentCreationClosure {
return { (component) -> (BaseView) in
switch component {
case .options:
return OptionsModuleBuilderIPAD.build(output: output)
}
}
}
}