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
private func onStateChange(viewModel: VDSLabelModel) {
text = model.text
textAlignment = viewModel.textPosition.textAlignment
textColor = getTextColor(for: viewModel.disabled, surface: viewModel.surface)

View File

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

View File

@ -338,8 +338,7 @@ import Combine
open override func onStateChange(viewModel: ModelType) {
let enabled = !viewModel.disabled
label.set(with: viewModel)
label.text = viewModel.on ? viewModel.onText : viewModel.offText
label.set(with: viewModel.label)
setAccessibilityHint(!viewModel.disabled)
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 showText: Bool { get set }
var on: Bool { get set }
@ -27,6 +27,18 @@ extension VDSToggleModel {
get { return .body }
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 {