|
|
@ -24,12 +24,16 @@ class BankBranchPickerViewController: UIViewController { |
|
|
|
@IBOutlet weak var searchTextField: UITextField! |
|
|
|
@IBOutlet weak var titleLabel: UILabel! |
|
|
|
@IBOutlet weak var noResultFoundLabel: UILabel! |
|
|
|
|
|
|
|
@IBOutlet weak var mainview: UIView! |
|
|
|
|
|
|
|
var data: [SendMoneyBankBranch] = [] { |
|
|
|
didSet { |
|
|
|
self.tableVIew.reloadData() |
|
|
|
} |
|
|
|
} |
|
|
|
var countryCode: String? |
|
|
|
var bankId: String? |
|
|
|
|
|
|
|
|
|
|
|
var data: [SendMoneyBankBranch] = [] |
|
|
|
var selectedData : SendMoneyBankBranch? |
|
|
|
|
|
|
|
var filteredPlaces: [SendMoneyBankBranch] = [] { |
|
|
@ -51,9 +55,7 @@ class BankBranchPickerViewController: UIViewController { |
|
|
|
override func viewDidLoad() { |
|
|
|
super.viewDidLoad() |
|
|
|
self.setupTableView() |
|
|
|
|
|
|
|
self.setupSearchService() |
|
|
|
// self.setupSearchTextFieldUi() |
|
|
|
self.setupPlaces() |
|
|
|
self.titleView.layer.cornerRadius = 10 |
|
|
|
self.mainview.layer.cornerRadius = 10 |
|
|
@ -88,7 +90,6 @@ class BankBranchPickerViewController: UIViewController { |
|
|
|
} |
|
|
|
|
|
|
|
private func setupSearchTextFieldUi() { |
|
|
|
// #imageLiteral(resourceName: "ic_search") |
|
|
|
let searchIconImageView = UIImageView(image: #imageLiteral(resourceName: "ic_search")) |
|
|
|
searchIconImageView.tintColor = Constants.tintColor |
|
|
|
self.searchTextField.leftView = searchIconImageView |
|
|
@ -103,29 +104,19 @@ class BankBranchPickerViewController: UIViewController { |
|
|
|
|
|
|
|
@objc private func search(sender: UITextField) { |
|
|
|
let searchString = sender.text! |
|
|
|
self.searchText = searchString |
|
|
|
if searchString.isEmpty { |
|
|
|
self.filteredPlaces = self.data |
|
|
|
// make a api call here |
|
|
|
guard searchString.count > 2 else { |
|
|
|
self.filteredPlaces = [] |
|
|
|
return |
|
|
|
} |
|
|
|
print("searchString : \(searchString), \(filteredPlaces)") |
|
|
|
self.filteredPlaces = self.data.filter({ |
|
|
|
return searchString.isEmpty || |
|
|
|
($0.name ?? "").lowercased().contains(searchString.lowercased()) |
|
|
|
}).sorted(by: { (a, _) -> Bool in |
|
|
|
return ((a.name ?? "").lowercased() ?? "").hasPrefix(searchString.lowercased()) |
|
|
|
}) |
|
|
|
print("after search") |
|
|
|
print(filteredPlaces) |
|
|
|
let countryCode = self.countryCode ?? "" |
|
|
|
let bankId = self.bankId ?? "" |
|
|
|
self.fetchBranches(countryCode: countryCode, bankId: bankId, branchName: searchString) |
|
|
|
|
|
|
|
} |
|
|
|
// MARK: IBActions |
|
|
|
|
|
|
|
@IBAction func close(_ sender: Any?) { |
|
|
|
// let selectedIndexPaths = self.tableVIew.indexPathsForSelectedRows ?? self.tableVIew.indexPathForSelectedRow.map({[$0]}) |
|
|
|
// let selectedData = selectedIndexPaths?.flatMap { indexPath -> SendMoneyBankBranch? in |
|
|
|
// let value = data[indexPath.row] |
|
|
|
// return value |
|
|
|
// } |
|
|
|
self.doneAction?([self.selectedData]) |
|
|
|
self.dismiss(animated: true, completion: nil) |
|
|
|
} |
|
|
@ -153,10 +144,6 @@ extension BankBranchPickerViewController: UITableViewDelegate { |
|
|
|
|
|
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
|
|
|
self.selectedData = filteredPlaces.elementAt(index: indexPath.row) |
|
|
|
// let cell = tableView.cellForRow(at: indexPath) |
|
|
|
// |
|
|
|
// cell?.accessoryType = .checkmark |
|
|
|
// |
|
|
|
if !self.allowMultipleSelection { |
|
|
|
self.close(nil) |
|
|
|
} |
|
|
@ -181,10 +168,17 @@ extension BankBranchPickerViewController: UITableViewDataSource { |
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
|
|
|
let cell = tableVIew.dequeueReusableCell(withIdentifier: "BankBranchPickerCell", for: indexPath) as! BankBranchPickerCell |
|
|
|
cell.place = self.filteredPlaces.elementAt(index: indexPath.row)?.name |
|
|
|
// if let selected = self.defaultSelectedData.first { |
|
|
|
// cell.selectedPlace = selected |
|
|
|
// } |
|
|
|
cell.setup() |
|
|
|
return cell |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
extension BankBranchPickerViewController: FetchBankBranchService { |
|
|
|
func fetchBranches(countryCode: String, bankId: String, branchName: String) { |
|
|
|
self.fetchBranch(countryCode: countryCode, bankId: bankId, branchName: branchName, success: { (models) in |
|
|
|
self.filteredPlaces = models |
|
|
|
}) { (error) in |
|
|
|
self.alert(message: error.localizedDescription) |
|
|
|
} |
|
|
|
} |
|
|
|
} |