// // GMEAlertViewController.swift // GME Remit // // Created by InKwon Devik Kim on 02/07/2019. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class GMEAlertViewController: UIViewController { @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var messageLabel: UILabel! @IBOutlet private weak var rightButton: UIButton! @IBOutlet private weak var leftButton: UIButton! @IBOutlet private weak var mainView: UIView! @IBOutlet private weak var transParentView: UIView! @IBOutlet private weak var checkMarkView: CheckMark! @IBOutlet private weak var checkMarkContainerView: UIView! private var rightButtonAction: (() -> Void)? private var leftButtonAction: (() -> Void)? private var titleText: String? private var messageText: String? private var rightButtonTitle: String? private var leftButtonTitle: String? private var type: AlertType = .normal private let impact = UIImpactFeedbackGenerator() override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } init( type: AlertType = .normal, title: String? = "Alert", message: String? = nil, rightButtonTitle: String? = nil, leftButtonTitle: String? = nil, rightButtonAction: (() -> Void)? = nil, leftButtonAction: (() -> Void)? = nil ) { super.init(nibName: "GMEAlertViewController", bundle: nil) self.type = type self.titleText = title self.messageText = message self.rightButtonTitle = rightButtonTitle self.leftButtonTitle = leftButtonTitle self.rightButtonAction = rightButtonAction self.leftButtonAction = leftButtonAction modalPresentationStyle = .overFullScreen modalTransitionStyle = .crossDissolve } override func viewDidLoad() { super.viewDidLoad() mainView.layer.cornerRadius = 5 titleLabel.text = titleText messageLabel.text = messageText rightButton.setTitle(rightButtonTitle, for: .normal) leftButton.setTitle(leftButtonTitle, for: .normal) if leftButtonTitle == nil { leftButton.isEnabled = false leftButton.isHidden = true } titleLabel.textColor = .themeRed rightButton.backgroundColor = .themeRed transParentView.backgroundColor = .themeBackgroundGray } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) impact.impactOccurred() mainView.popUpBouncy() switch type { case .normal: checkMarkContainerView.isHidden = true case .error: checkMarkContainerView.isHidden = false self.checkMarkView.animate(animationType: .error) case .success: checkMarkContainerView.isHidden = false self.checkMarkView.animate(animationType: .success) } } @IBAction func touchRightButton(_ sender: UIButton) { self.dismiss(animated: false) { self.rightButtonAction?() } } @IBAction func touchLeftButton(_ sender: UIButton) { self.dismiss(animated: false) { self.leftButtonAction?() } } }