refactored label

added label computer var off of toggle

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-02 11:59:30 -05:00
parent ecdd57f094
commit 81d36f0096
4 changed files with 17 additions and 3 deletions

View File

@ -75,6 +75,7 @@ open class VDSLabel: UILabel, Modelable, Initable {
//functions //functions
private func onStateChange(viewModel: VDSLabelModel) { private func onStateChange(viewModel: VDSLabelModel) {
text = model.text
textAlignment = viewModel.textPosition.textAlignment textAlignment = viewModel.textPosition.textAlignment
textColor = getTextColor(for: viewModel.disabled, surface: viewModel.surface) textColor = getTextColor(for: viewModel.disabled, surface: viewModel.surface)

View File

@ -9,9 +9,11 @@ import Foundation
import UIKit import UIKit
public protocol VDSLabelModel: Labelable, Surfaceable, Disabling { public protocol VDSLabelModel: Labelable, Surfaceable, Disabling {
var text: String? { get set }
} }
open class DefaultLabelModel: VDSLabelModel { open class DefaultLabelModel: VDSLabelModel {
public var text: String?
public var fontCategory: VDSFontCategory = .body public var fontCategory: VDSFontCategory = .body
public var fontSize: VDSFontSize = .small public var fontSize: VDSFontSize = .small
public var fontWeight: VDSFontWeight = .regular public var fontWeight: VDSFontWeight = .regular

View File

@ -338,8 +338,7 @@ import Combine
open override func onStateChange(viewModel: ModelType) { open override func onStateChange(viewModel: ModelType) {
let enabled = !viewModel.disabled let enabled = !viewModel.disabled
label.set(with: viewModel) label.set(with: viewModel.label)
label.text = viewModel.on ? viewModel.onText : viewModel.offText
setAccessibilityHint(!viewModel.disabled) setAccessibilityHint(!viewModel.disabled)
setAccessibilityValue(viewModel.on) setAccessibilityValue(viewModel.on)

View File

@ -14,7 +14,7 @@ extension VDSToggle {
} }
} }
public protocol VDSToggleModel: VDSLabelModel, FormFieldable, DataTrackable, Accessable, Initable { public protocol VDSToggleModel: FormFieldable, DataTrackable, Accessable, Initable, Labelable, Surfaceable, Disabling {
var id: String? { get set } var id: String? { get set }
var showText: Bool { get set } var showText: Bool { get set }
var on: Bool { get set } var on: Bool { get set }
@ -27,6 +27,18 @@ extension VDSToggleModel {
get { return .body } get { return .body }
set { return } set { return }
} }
public var label: VDSLabelModel {
let model = DefaultLabelModel()
model.fontSize = fontSize
model.textPosition = textPosition
model.fontWeight = fontWeight
model.fontCategory = .body
model.text = on ? onText : offText
model.surface = surface
model.disabled = disabled
return model
}
} }
public class DefaultToggleModel: DefaultLabelModel, VDSToggleModel { public class DefaultToggleModel: DefaultLabelModel, VDSToggleModel {