//
//  GroupNameModificationViewController.swift
//  Paiai_iOS
//
//  Created by FFIB on 16/4/6.
//  Copyright © 2016年 FFIB. All rights reserved.
//

import UIKit
import RxSwift
import RxCocoa
import PaiaiUIKit
import PaiaiDataKit

final class GroupNameModificationViewController: UIViewController {

    // MARK: Storyboard property
    @IBOutlet weak var textField: UITextField!
    @IBOutlet weak var saveButton: UIButton!

    var viewModel: GroupDetailViewModel!

    let disposeBag = DisposeBag()
    // MARK: view function
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.title = "群名称"
        setupTextFieldLeftView()
        bindTextFieldToSaveButton()
    }

    func setupTextFieldLeftView() {
        let leftView = UIView(frame: CGRect(x: 0, y: 0, width: 12, height: textField.width))
        textField.leftView = leftView
        textField.leftViewMode = .always
        textField.placeholder = viewModel.item.value.group.group_name
    }

    func bindTextFieldToSaveButton() {
        textField.rx.text
                    .map {!($0?.isEmpty)!}
                    .bind(to: saveButton.rx.isEnabled)
                    .disposed(by: disposeBag)
    }
}

extension GroupNameModificationViewController {

    @IBAction func saveName() {
        guard let text = textField.text, text.count <= 20 else {
            saveFailed()
            return
        }

        viewModel.changeName(name: text)
    }

    func saveFailed() {
        textField.resignFirstResponder()
        let alert = AlertController(title: "保存失败", message: "群名称不能超过20个字")
        alert.addAlertAction(AlertAction(title: "确定"))
        presentController(alert)
    }

    @IBAction func tapView() {
        textField.resignFirstResponder()
    }
}

extension GroupNameModificationViewController: NavigationBackViewController {}

extension GroupNameModificationViewController: Storyboarded {
    static func instantiate() -> GroupNameModificationViewController {
        return UIStoryboard.groupDetail.instantiateViewController(type: GroupNameModificationViewController.self)
    }
}