60 lines
1.7 KiB
Swift
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)
|
|
}
|
|
}
|
|
}
|
|
}
|