added iOS source code
[wl-app.git] / iOS / WolneLektury / Screens / BookList / BookListViewController.swift
1 //
2 //  BookListViewController.swift
3 //  WolneLektury
4 //
5 //  Created by Pawel Dabrowski on 30/08/2018.
6 //  Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
7 //
8
9 import UIKit
10
11 class BookListViewController: ListViewController {
12     
13     static func instance(listViewControllerType: ListViewControllerType, dataSource: [Any]?) -> BookListViewController {
14         let controller = BookListViewController.instance()
15         controller.dataSource = dataSource ?? [BookModel]()
16         controller.listViewControllerType = listViewControllerType
17         return controller
18     }
19     
20     override func setupTableView() {
21         tableView.registerNib(name: "BookTableViewCell")
22         super.setupTableView()
23     }
24
25     override func getLastObjectAfterParameter() -> String? {
26
27         if let last = dataSource.last as? BookModel {
28             return last.full_sort_key
29         }
30         return nil
31     }
32     
33     override func getTableViewCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
34         let cell = tableView.dequeueReusableCell(withIdentifier: "BookTableViewCell", for: indexPath) as! BookTableViewCell
35         cell.setup(bookModel: dataSource[indexPath.row] as! BookModel)
36         return cell
37     }
38     
39     override func didSelectRow(row: Int) {
40         if dataSource.count > row {
41             navigationController?.pushViewController(BookDetailsViewController.instance(bookSlug: (dataSource[row] as! BookModel).slug) , animated: true)
42         }
43     }
44 }