// // DetailNotificationViewController.swift // GME Remit // // Created by InKwon James Kim on 2020/02/11. //Copyright © 2020 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit import RxSwift import RxCocoa class DetailNotificationViewController: UIViewController { // MARK: Properties var presenter: DetailNotificationPresenter! private let disposeBag = DisposeBag() // MARK: Computed Properties // MARK: IBOutlets @IBOutlet private weak var imageView: UIImageView! @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var contentLabel: UILabel! @IBOutlet private weak var dateLabel: UILabel! @IBOutlet private weak var contentView: UIView! // MARK: VC's Life cycle override func viewDidLoad() { super.viewDidLoad() setup() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) title = "Notice" } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) } // MARK: IBActions } // MARK: Other Functions extension DetailNotificationViewController { private func setup() { setUI() setBinding() setUIBinding() } private func setUI() { } private func setUIBinding() { } private func setBinding() { let viewWillAppear = rx .sentMessage(#selector(UIViewController.viewWillAppear(_:))).mapToVoid().asDriverOnErrorJustComplete() let input = DetailNotificationPresenter.Input( viewWillAppear: viewWillAppear ) let output = presenter.transform(input: input) output.isError .drive( onNext: { self.alert(type: .error, message: $0.localizedDescription) } ).disposed(by: disposeBag) output.isProgress .drive( onNext: { $0 ? self.showProgressHud() : self.hideProgressHud() } ).disposed(by: disposeBag) output.model.map {$0.body}.drive(contentLabel.rx.text).disposed(by: disposeBag) output.model.map {$0.date}.drive(dateLabel.rx.text).disposed(by: disposeBag) output.model.map {$0.title ?? ""}.drive(titleLabel.rx.text).disposed(by: disposeBag) output.model.map {$0.imageURL}.drive(onNext: {[weak self] in guard let imageURL = $0, let url = URL(string: imageURL) else { self?.imageView.isHidden = true return } self?.showProgressHud() self?.imageView.kf.setImage(with: url) { _ in self?.hideProgressHud() } }).disposed(by: disposeBag) } }