vds_ios/VDS/Classes/ModelColorHelper.swift
Matt Bruce 5820401c50 refactored label
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-08-04 10:24:43 -05:00

60 lines
1.7 KiB
Swift

//
// ModelColorHelper.swift
// VDS
//
// Created by Matt Bruce on 8/4/22.
//
import Foundation
import UIKit
public class ModelColor<ModelType:Disabling & Surfaceable> {
public var disabledSurfaceLight: UIColor = .clear
public var disabledSurfaceDark: UIColor = .clear
public var enabledSurfaceLight: UIColor = .clear
public var enabledSurfaceDark: UIColor = .clear
public func getColor(_ viewModel: ModelType) -> UIColor {
var color: UIColor
if viewModel.disabled {
if viewModel.surface == .light {
color = disabledSurfaceLight
} else {
color = disabledSurfaceDark
}
} else {
if viewModel.surface == .light {
color = enabledSurfaceLight
} else {
color = enabledSurfaceDark
}
}
return color
}
}
public class ModelColorHelper<ModelType:Disabling & Surfaceable> {
public var onColor = ModelColor<ModelType>()
public var offColor: ModelColor<ModelType>?
public var errorOnColor: ModelColor<ModelType>?
public var errorOffColor: ModelColor<ModelType>?
public init (){}
public func getColor(model: ModelType, isOn: Bool = true, isError: Bool = false) -> UIColor {
if isOn {
if isError {
return errorOnColor?.getColor(model) ?? onColor.getColor(model)
} else {
return onColor.getColor(model)
}
} else {
if isError {
return errorOffColor?.getColor(model) ?? (offColor?.getColor(model) ?? onColor.getColor(model))
} else {
return offColor?.getColor(model) ?? onColor.getColor(model)
}
}
}
}