//
//  AddExtensionViewContrller.swift
//  NetNewsWire-iOS
//
//  Created by Maurice Parker on 4/16/20.
//  Copyright © 2020 Ranchero Software. All rights reserved.
//

import UIKit

protocol AddExtensionDismissDelegate: UIViewController {
	func dismiss()
}

class AddExtensionViewController: UITableViewController, AddExtensionDismissDelegate {

	private var availableExtensionPointTypes = [ExtensionPoint.Type]()

	override func viewDidLoad() {
		super.viewDidLoad()
		availableExtensionPointTypes = ExtensionPointManager.shared.availableExtensionPointTypes
	}

	override func numberOfSections(in tableView: UITableView) -> Int {
		1
	}
	
	override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
		return availableExtensionPointTypes.count
	}
	
	override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
		return 52.0
	}
	
	override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
		let cell = tableView.dequeueReusableCell(withIdentifier: "SettingsExtensionTableViewCell", for: indexPath) as! SettingsComboTableViewCell
		
		let extensionPointType = availableExtensionPointTypes[indexPath.row]
		cell.comboNameLabel?.text = extensionPointType.title
		cell.comboImage?.image =  extensionPointType.templateImage
		
		return cell
	}
	
	override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
		let navController = UIStoryboard.settings.instantiateViewController(withIdentifier: "EnableExtensiontNavigationViewController") as! UINavigationController
		navController.modalPresentationStyle = .currentContext
		let enableViewController = navController.topViewController as! EnableExtensionViewController
		enableViewController.delegate = self
		enableViewController.extensionPointType = availableExtensionPointTypes[indexPath.row]
		present(navController, animated: true)
	}
	
	func dismiss() {
		navigationController?.popViewController(animated: false)
	}
	
}