SearchingViewController.swift 1.97 KB
//
//  SearchingViewController.swift
//  browser
//
//  Created by Artem Talko on 29.09.2023.
//

import UIKit

final class SearchingViewController: UIViewController {
    let mainView = SearchingView()
    var dataForReq: [String] {
        didSet {
            mainView.searchTableView.reloadData()
        }
    }
    var searchCell: ((UITableViewCell) -> Void)?
    
    init(dataForReq: [String]) {
        self.dataForReq = 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()
    }
}

extension SearchingViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataForReq.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "SearchingTableViewCell", for: indexPath) as? SearchingTableViewCell else {
            return SearchingTableViewCell()
        }
        let searchCellData = dataForReq[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)
    }
    
    func setupTableView() {
        mainView.searchTableView.dataSource = self
        mainView.searchTableView.delegate = self
        mainView.searchTableView.register(SearchingTableViewCell.self, forCellReuseIdentifier: StringConstants.searchTableViewCell)
    }
}