mobile-ios/CovidSafe/CSGenericErrorController.swift

62 lines
2 KiB
Swift
Raw Permalink Normal View History

2021-02-26 03:41:20 +00:00
//
// CSGenericErrorViewController.swift
// CovidSafe
//
// Copyright © 2020 Australian Government. All rights reserved.
//
import UIKit
import SafariServices
class CSGenericErrorViewController: UIViewController {
@IBOutlet weak var errorTitleLabel: UILabel!
@IBOutlet weak var errorDescriptionText: UILabel!
@IBOutlet weak var mainButton: UIButton!
@IBOutlet weak var secondaryButton: UIButton!
var errorViewModel: CSGenericErrorViewModel?
override func viewDidLoad() {
super.viewDidLoad()
guard let viewModel = errorViewModel else {
return
}
// set title and content
errorTitleLabel.font = UIFont.preferredFont(for: .title3, weight: .semibold)
errorTitleLabel.text = viewModel.errorTitle
errorDescriptionText.text = viewModel.errorContentDescription
//set button label and action
mainButton.setTitle(viewModel.mainButtonLabel, for: .normal)
mainButton.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
//set button label and action
secondaryButton.setTitle(viewModel.secondaryButtonLabel, for: .normal)
secondaryButton.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
}
@objc func buttonPressed(sender: UIButton!) {
if sender == mainButton {
self.dismiss(animated: true, completion: errorViewModel?.mainButtonCallback)
} else if sender == secondaryButton {
self.dismiss(animated: true, completion: errorViewModel?.secondaryButtonCallback)
}
}
@IBAction func closeBtnTapped(_ sender: Any) {
dismiss(animated: true)
}
}
struct CSGenericErrorViewModel {
var errorTitle: String
var errorContentDescription: String
var mainButtonLabel: String
var mainButtonCallback: (() -> Void)?
var secondaryButtonLabel: String
var secondaryButtonCallback: (() -> Void)?
}