From 1f91459b9ec5cb83def198f07b86fbdbb0bde405 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 12 Oct 2022 09:00:41 -0500 Subject: [PATCH] refactored toggle to match updated property names Signed-off-by: Matt Bruce --- VDS/Components/Toggle/Toggle.swift | 41 +++---------------------- VDS/Components/Toggle/ToggleModel.swift | 40 +++++++++++++++++++++--- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index 389ec25f..1ff9c450 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -107,26 +107,14 @@ open class ToggleBase: Control { @Proxy(\.model.offText) public var offText: String - public var fontSize: TypographicalStyle.FontSize = .small{ - didSet { - updateTypography() - } - } + @Proxy(\.model.textSize) + public var textSize: ToggleTextSize - public var isBold: Bool = false { - didSet { - updateTypography() - } - } + @Proxy(\.model.textWeight) + public var textWeight: ToggleTextWeight @Proxy(\.model.textPosition) - public var textPosition: TextPosition { - didSet { - if oldValue != textPosition { - updateLabel(model) - } - } - } + public var textPosition: ToggleTextPosition @Proxy(\.model.inputId) open var inputId: String? @@ -161,25 +149,6 @@ open class ToggleBase: Control { @Proxy(\.model.accessibilityLabelDisabled) open var accessibilityLabelDisabled: String? - //only allows - //fontSize: small, large - //fontWeight: regular, bold - private func updateTypography() { - if fontSize == .small { - if isBold { - model.typograpicalStyle = .BoldBodySmall - } else { - model.typograpicalStyle = .BodySmall - } - } else { - if isBold { - model.typograpicalStyle = .BoldBodyLarge - } else { - model.typograpicalStyle = .BodyLarge - } - } - } - //-------------------------------------------------- // MARK: - Constraints //-------------------------------------------------- diff --git a/VDS/Components/Toggle/ToggleModel.swift b/VDS/Components/Toggle/ToggleModel.swift index 72b5eef4..4c888b49 100644 --- a/VDS/Components/Toggle/ToggleModel.swift +++ b/VDS/Components/Toggle/ToggleModel.swift @@ -8,19 +8,50 @@ import Foundation import UIKit -public protocol ToggleModel: Modelable, FormFieldable, DataTrackable, Accessable, Labelable, BinaryColorable { +public enum ToggleTextSize: String, CaseIterable { + case small, large +} + +public enum ToggleTextWeight: String, CaseIterable { + case regular, bold +} + +public enum ToggleTextPosition: String, CaseIterable { + case left, right +} + +public protocol ToggleModel: Modelable, FormFieldable, DataTrackable, Accessable, BinaryColorable { var showText: Bool { get set } var on: Bool { get set } var offText: String { get set } var onText: String { get set } + var textWeight: ToggleTextWeight { get set } + var textSize: ToggleTextSize { get set } + var textPosition: ToggleTextPosition { get set } } extension ToggleModel { public var userTrueColor: Bool { return on } public var labelModel: DefaultLabelModel { + + var typograpicalStyle: TypographicalStyle + if textSize == .small { + if textWeight == .bold { + typograpicalStyle = .BoldBodySmall + } else { + typograpicalStyle = .BodySmall + } + } else { + if textWeight == .bold { + typograpicalStyle = .BoldBodyLarge + } else { + typograpicalStyle = .BodyLarge + } + } + var model = DefaultLabelModel() - model.textPosition = textPosition + model.textPosition = textPosition == .left ? .left : .right model.typograpicalStyle = typograpicalStyle model.text = on ? onText : offText model.surface = surface @@ -36,8 +67,9 @@ public struct DefaultToggleModel: ToggleModel { public var offText: String = "Off" public var onText: String = "On" - public var typograpicalStyle: TypographicalStyle = .BodySmall - public var textPosition: TextPosition = .left + public var textWeight: ToggleTextWeight = .regular + public var textSize: ToggleTextSize = .small + public var textPosition: ToggleTextPosition = .left public var inputId: String? public var value: AnyHashable? = true