SearchingViewController.swift 2.1 KB
//
//  SearchingViewController.swift
//  browser
//
//  Created by Artem Talko on 29.09.2023.
//
//MARK: Checked

import UIKit

final class SearchingViewController: UIViewController {
    let mainView = SearchingView()
    
    var searchRequestData: [String] {
        didSet {
            mainView.searchTableView.reloadData()
        }
    }
    var searchCell: ((UITableViewCell) -> Void)?
    
    init(dataForReq: [String]) {
        self.searchRequestData = dataForReq
    
        super.init(nibName: nil, bundle: nil)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func loadView() {
        view = mainView
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = ColorConstants.lightGray
        initViewController()
    }
    
    private func initViewController() {
        setupTableView()
    }
}

//MARK: Setup TableView
extension SearchingViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return searchRequestData.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: SearchingTableViewCell.cellID, for: indexPath) as? SearchingTableViewCell else {
            return UITableViewCell()
        }
        let searchCellData = searchRequestData[indexPath.row]
        cell.model = searchCellData
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        guard let tappedCell = tableView.cellForRow(at: indexPath) else { return }
        searchCell?(tappedCell)
    }
}


//MARK: Helper
extension SearchingViewController {
    private func setupTableView() {
        mainView.searchTableView.dataSource = self
        mainView.searchTableView.delegate = self
        mainView.searchTableView.register(SearchingTableViewCell.self, forCellReuseIdentifier: SearchingTableViewCell.cellID)
    }
}