diff --git a/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift b/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift index ca90db94..816371dd 100644 --- a/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift +++ b/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift @@ -57,7 +57,8 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW enabledFillColor_inverted: Color(uiColor: .mvmWhite), enabledTextColor_inverted: Color(uiColor: .mvmBlack), disabledFillColor_inverted: Color(uiColor: .mvmCoolGray6), - disabledTextColor_inverted: Color(uiColor: .mvmBlack)) + disabledTextColor_inverted: Color(uiColor: .mvmBlack), + borderWidth: 0) private var secondaryFacade = Facade(enabledFillColor: Color(uiColor: .mvmWhite), enabledTextColor: Color(uiColor: .mvmBlack), @@ -70,7 +71,8 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW enabledBorderColor_inverted: Color(uiColor: .mvmWhite), disabledFillColor_inverted: Color(uiColor: .mvmWhite), disabledTextColor_inverted: Color(uiColor: .mvmCoolGray6), - disabledBorderColor_inverted: Color(uiColor: .mvmCoolGray6)) + disabledBorderColor_inverted: Color(uiColor: .mvmCoolGray6), + borderWidth: 1) //-------------------------------------------------- // MARK: - Methods diff --git a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift index 3cea7765..9503168e 100644 --- a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift +++ b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift @@ -31,6 +31,28 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { case standard = 42 } + //-------------------------------------------------- + // MARK: - Computed Properties + //-------------------------------------------------- + + public var enabledTitleColor: UIColor? { + get { return titleColor(for: .normal) } + set { setTitleColor(newValue, for: .normal) } + } + + public var disabledTitleColor: UIColor? { + get { return titleColor(for: .disabled) } + set { setTitleColor(newValue, for: .disabled) } + } + + public var borderColor: UIColor? { + get { + guard let currentColor = layer.borderColor else { return nil } + return UIColor(cgColor: currentColor) + } + set { layer.borderColor = newValue?.cgColor} + } + //-------------------------------------------------- // MARK: - Methods //-------------------------------------------------- @@ -39,9 +61,9 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { public func stylePrimary() { buttonModel?.style = .primary - setTitleColor(buttonModel?.facade?.enabled.text ?? .mvmWhite, for: .normal) - setTitleColor(buttonModel?.facade?.disabled.text ?? .mvmWhite, for: .disabled) - layer.borderWidth = 0 + enabledTitleColor = buttonModel?.facade?.enabled.text ?? .mvmWhite + disabledTitleColor = buttonModel?.facade?.disabled.text ?? .mvmWhite + layer.borderWidth = buttonModel?.facade?.getBorderWidth() ?? 0 backgroundColor = isEnabled ? buttonModel?.facade?.enabled.fill ?? .mvmBlack : buttonModel?.facade?.enabled.fill ?? .mvmCoolGray6 } @@ -49,16 +71,11 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { public func styleSecondary() { buttonModel?.style = .secondary - setTitleColor(buttonModel?.facade?.enabled.text ?? .mvmBlack, for: .normal) - setTitleColor(buttonModel?.facade?.disabled.text ?? .mvmCoolGray6, for: .disabled) + enabledTitleColor = buttonModel?.facade?.enabled.text ?? .mvmBlack + disabledTitleColor = buttonModel?.facade?.disabled.text ?? .mvmCoolGray6 backgroundColor = .clear - layer.borderWidth = 1 - - if isEnabled { - layer.borderColor = buttonModel?.facade?.enabled.border?.cgColor ?? UIColor.mvmBlack.cgColor - } else { - layer.borderColor = buttonModel?.facade?.enabled.border?.cgColor ?? UIColor.mvmCoolGray6.cgColor - } + layer.borderWidth = buttonModel?.facade?.getBorderWidth() ?? 1 + borderColor = isEnabled ? buttonModel?.facade?.enabled.border ?? .mvmBlack : buttonModel?.facade?.enabled.border ?? .mvmCoolGray6 } /// Styles the button based on the model style @@ -73,11 +90,11 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { } if let titleColor = buttonModel?.facade?.enabled.text { - setTitleColor(titleColor, for: .normal) + enabledTitleColor = titleColor } if let disabledTitleColor = buttonModel?.facade?.disabled.text { - setTitleColor(disabledTitleColor, for: .disabled) + self.disabledTitleColor = disabledTitleColor } if isEnabled { @@ -86,17 +103,17 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { } if let borderColor = buttonModel?.facade?.enabled.border { - layer.borderWidth = 1 - layer.borderColor = borderColor.cgColor + layer.borderWidth = buttonModel?.facade?.getBorderWidth() ?? 1 + self.borderColor = borderColor } } else { if let fillColor = buttonModel?.facade?.disabled.fill { backgroundColor = fillColor } - if let borderColor = buttonModel?.facade?.disabledBorderColor { - layer.borderWidth = 1 - layer.borderColor = borderColor.cgColor + if let borderColor = buttonModel?.facade?.disabled.border { + layer.borderWidth = buttonModel?.facade?.getBorderWidth() ?? 1 + self.borderColor = borderColor } } }