// // ServersModuleBuilder.swift // PrivadoVPN // // Created by Juraldinio on 3/11/21. // Copyright © 2021 Privado LLC. All rights reserved. // import Foundation import AppKit final class ServersModuleBuilder { static func build(output: ServersModuleOutput?) -> NSViewController { let presenter = ServersPresenter(output: output, coordinator: DatabaseAnswer.commonDB) let serverListController = ServerListModuleBuilder.build(output: presenter) let favouriteListController = FavouriteServersModuleBuilder.build(output: presenter) let sections: [ServerSection] = [serverListController, favouriteListController] let controller = ServersController( output: presenter, headerCreation: Self.creator(), sections: sections, sortPanelCreationClosure: { SearchPanelBuilder.build(output: presenter) } ) presenter.viewInput = controller presenter.favouritesViewInput = favouriteListController presenter.serverListViewInput = serverListController return controller } private static func creator() -> MainController.HeaderCreationClosure { return { () -> NSViewController in HeaderControllerBuilder.build(icon: .back) } } }