// // TwitterEnterDetailTableViewController.swift // NetNewsWire-iOS // // Created by Maurice Parker on 4/23/20. // Copyright © 2020 Ranchero Software. All rights reserved. // import UIKit import Account class TwitterEnterDetailTableViewController: UITableViewController { @IBOutlet weak var detailTextField: UITextField! var doneBarButtonItem = UIBarButtonItem() var twitterFeedType: TwitterFeedType? override func viewDidLoad() { super.viewDidLoad() doneBarButtonItem.title = NSLocalizedString("Next", comment: "Next") doneBarButtonItem.style = .plain doneBarButtonItem.target = self doneBarButtonItem.action = #selector(done) navigationItem.rightBarButtonItem = doneBarButtonItem if case .screenName = twitterFeedType { navigationItem.title = NSLocalizedString("Enter Name", comment: "Enter Name") detailTextField.placeholder = NSLocalizedString("Screen Name", comment: "Screen Name") } else { navigationItem.title = NSLocalizedString("Enter Search", comment: "Enter Search") detailTextField.placeholder = NSLocalizedString("Search Term or #hashtag", comment: "Search Term") } detailTextField.delegate = self NotificationCenter.default.addObserver(self, selector: #selector(textDidChange(_:)), name: UITextField.textDidChangeNotification, object: detailTextField) updateUI() } @objc func done() { guard let twitterFeedType = twitterFeedType, var text = detailTextField.text?.collapsingWhitespace else { return } let url: String? if twitterFeedType == .screenName { if text.starts(with: "@") { text = String(text[text.index(text.startIndex, offsetBy: 1)..<text.endIndex]) } url = TwitterFeedProvider.buildURL(twitterFeedType, username: nil, screenName: text, searchField: nil)?.absoluteString } else { url = TwitterFeedProvider.buildURL(twitterFeedType, username: nil, screenName: nil, searchField: text)?.absoluteString } let addViewController = UIStoryboard.add.instantiateViewController(withIdentifier: "AddWebFeedViewController") as! AddFeedViewController addViewController.addFeedType = .twitter addViewController.initialFeed = url navigationController?.pushViewController(addViewController, animated: true) } @objc func textDidChange(_ note: Notification) { updateUI() } } extension TwitterEnterDetailTableViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true } } private extension TwitterEnterDetailTableViewController { func updateUI() { doneBarButtonItem.isEnabled = !(detailTextField.text?.isEmpty ?? false) } }