This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MARK: - GatherViewController | |
final class GatherViewController: UIViewController, GatherViewable { | |
// MARK: - Properties | |
@IBOutlet weak var playerTableView: UITableView! | |
@IBOutlet weak var scoreLabelView: ScoreLabelView! | |
@IBOutlet weak var scoreStepper: ScoreStepper! | |
@IBOutlet weak var timerLabel: UILabel! | |
@IBOutlet weak var timerView: UIView! | |
@IBOutlet weak var timePickerView: UIPickerView! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func cellPresenter(at index: Int) -> PlayerTableViewCellPresenterProtocol { | |
if let cellPresenter = cellPresenters[index] { | |
cellPresenter.viewState = viewState | |
return cellPresenter | |
} | |
let cellPresenter = PlayerTableViewCellPresenter(viewState: viewState) | |
cellPresenters[index] = cellPresenter | |
return cellPresenter |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | |
guard let cell: PlayerTableViewCell = tableView.dequeueReusableCell(withIdentifier: "PlayerTableViewCell") as? PlayerTableViewCell else { | |
return UITableViewCell() | |
} | |
let index = indexPath.row | |
let cellPresenter = presenter.cellPresenter(at: index) | |
let player = presenter.player(at: index) | |
cellPresenter.view = cell |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final class PlayerTableViewCell: UITableViewCell, PlayerTableViewCellProtocol { | |
@IBOutlet weak var checkboxImageView: UIImageView! | |
@IBOutlet weak var playerCellLeftConstraint: NSLayoutConstraint! | |
@IBOutlet weak var nameLabel: UILabel! | |
@IBOutlet weak var positionLabel: UILabel! | |
@IBOutlet weak var skillLabel: UILabel! | |
private enum Constants { | |
static let playerContentLeftPadding: CGFloat = 10.0 | |
static let playerContentAndIconLeftPadding: CGFloat = -20.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final class PlayerTableViewCellPresenter: PlayerTableViewCellPresenterProtocol { | |
var view: PlayerTableViewCellProtocol? | |
var viewState: PlayerListViewState | |
var isSelected = false | |
init(view: PlayerTableViewCellProtocol? = nil, | |
viewState: PlayerListViewState = .list) { | |
self.view = view | |
self.viewState = viewState |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol PlayerTableViewCellPresenterProtocol: AnyObject { | |
var view: PlayerTableViewCellProtocol? { get set } | |
var viewState: PlayerListViewState { get set } | |
var isSelected: Bool { get set } | |
func setupView() | |
func configure(with player: PlayerResponseModel) | |
func toggle() | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MARK: - PlayerAddDelegate | |
extension PlayerListPresenter: PlayerAddDelegate { | |
func didAddPlayer() { | |
loadPlayers() | |
} | |
} | |
// MARK: - ConfirmPlayersDelegate | |
extension PlayerListPresenter: ConfirmPlayersDelegate { | |
func didEndGather() { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension PlayerAddPresenter: PlayerAddPresenterServiceHandler { | |
func playerWasAdded() { | |
view?.hideLoadingView() | |
delegate?.didAddPlayer() | |
router.dismissAddView() | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension PlayerListRouter: PlayerListRouterProtocol { | |
func showAddPlayer(delegate: PlayerAddDelegate) { | |
let module = moduleFactory.makePlayerAdd(using: navigationController, delegate: delegate) | |
if let viewController = module.assemble() { | |
navigationController.pushViewController(viewController, animated: true) | |
} | |
} | |
func showConfirmPlayers(with playersDictionary: [TeamSection: [PlayerResponseModel]], delegate: ConfirmPlayersDelegate) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func confirmOrAddPlayers() { | |
if isInListViewMode { | |
showAddPlayerView() | |
} else { | |
showConfirmPlayersView() | |
} | |
} | |
private var isInListViewMode: Bool { | |
viewState == .list |