41 lines
1.3 KiB
Swift
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) }
|
|
}
|
|
|
|
}
|