Files

41 lines
1.3 KiB
Swift

//
// 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) }
}
}