added comments

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-07-10 14:46:19 -05:00
parent b0576634ae
commit fcbb6e99e4
2 changed files with 33 additions and 16 deletions

View File

@ -8,12 +8,18 @@
import Foundation
import UIKit
/// Protocol used for any object to be able to launch a loader
public protocol LoaderLaunchable {
func presentLoader(surface: Surface, size: Int?)
func dismissLoader()
}
extension LoaderLaunchable {
/// Default implementation for presenting
/// - Parameters:
/// - surface: Surface for the Loader
/// - size: Size for the loader, nil is default.
public func presentLoader(surface: Surface, size: Int? = nil) {
if let presenting = UIApplication.topViewController() {
let viewController = LoaderViewController(nibName: nil, bundle: nil).with {
@ -28,6 +34,7 @@ extension LoaderLaunchable {
}
}
/// Dismisses the Loader
public func dismissLoader() {
if let presenting = UIApplication.topViewController() as? LoaderViewController {
presenting.dismiss(animated: true)

View File

@ -9,23 +9,41 @@ import Foundation
import UIKit
import VDSColorTokens
public class LoaderViewController: UIViewController, Surfaceable {
/// ViewController to show the Loader, this will be presented using the LoaderLaunchable Protocl.
open class LoaderViewController: UIViewController, Surfaceable {
//--------------------------------------------------
// MARK: - Private Properties
//--------------------------------------------------
private var loader = Loader()
private var backgroundColorConfiguration = SurfaceColorConfiguration(VDSColor.backgroundPrimaryLight, VDSColor.backgroundPrimaryDark)
public var surface: Surface = .light
public var size: Int?
//--------------------------------------------------
// MARK: - Public Properties
//--------------------------------------------------
/// Current Surface used within this Control and used to passdown to child views
open var surface: Surface = .light { didSet { updateView() }}
public override func viewDidLoad() {
/// Size of the Height and Width of the Loader view.
open var size: Int? { didSet { updateView() }}
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
open override func viewDidLoad() {
super.viewDidLoad()
setup()
view.addSubview(loader)
NSLayoutConstraint.activate([
loader.centerXAnchor.constraint(equalTo: view.centerXAnchor),
loader.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
public override func viewWillAppear(_ animated: Bool) {
open override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
updateView()
}
/// Update this view based off of property chang
open func updateView() {
view.backgroundColor = backgroundColorConfiguration.getColor(self).withAlphaComponent(0.8)
if let size {
@ -33,12 +51,4 @@ public class LoaderViewController: UIViewController, Surfaceable {
}
loader.surface = surface
}
private func setup() {
view.addSubview(loader)
NSLayoutConstraint.activate([
loader.centerXAnchor.constraint(equalTo: view.centerXAnchor),
loader.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
}