diff --git a/VDS/Components/Label/VDSLabel.swift b/VDS/Components/Label/VDSLabel.swift index 91556d4b..1c7178e1 100644 --- a/VDS/Components/Label/VDSLabel.swift +++ b/VDS/Components/Label/VDSLabel.swift @@ -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) diff --git a/VDS/Components/Label/VDSLabelModel.swift b/VDS/Components/Label/VDSLabelModel.swift index 721f87ea..8644762d 100644 --- a/VDS/Components/Label/VDSLabelModel.swift +++ b/VDS/Components/Label/VDSLabelModel.swift @@ -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 diff --git a/VDS/Components/Toggle/VDSToggle.swift b/VDS/Components/Toggle/VDSToggle.swift index f8f1d65b..0691bf9d 100644 --- a/VDS/Components/Toggle/VDSToggle.swift +++ b/VDS/Components/Toggle/VDSToggle.swift @@ -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) diff --git a/VDS/Components/Toggle/VDSToggleModel.swift b/VDS/Components/Toggle/VDSToggleModel.swift index c335fdfb..d3738934 100644 --- a/VDS/Components/Toggle/VDSToggleModel.swift +++ b/VDS/Components/Toggle/VDSToggleModel.swift @@ -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 {