From 876ec4597df64fc441953530a9033d8fe0d96efc Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 6 May 2020 14:56:13 -0400 Subject: [PATCH] for custom colors --- .../Atomic/Atoms/Buttons/ButtonModel.swift | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift b/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift index 714a343b..e697c045 100644 --- a/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift +++ b/MVMCoreUI/Atomic/Atoms/Buttons/ButtonModel.swift @@ -61,11 +61,6 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW public var disabledTextColor_inverted: Color? public var disabledBorderColor_inverted: Color? - //-------------------------------------------------- - // MARK: - Default Button Facades - //-------------------------------------------------- - - //-------------------------------------------------- // MARK: - Methods //-------------------------------------------------- @@ -130,10 +125,15 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW /// Defines the default appearance for the primary style. func setPrimaryFacade() { - enabledFillColor = Color(uiColor: .mvmBlack) - enabledTextColor = Color(uiColor: .mvmWhite) - disabledFillColor = Color(uiColor: .mvmCoolGray6) - disabledTextColor = Color(uiColor: .mvmWhite) + if enabledFillColor == nil && enabledTextColor == nil { + enabledFillColor = Color(uiColor: .mvmBlack) + enabledTextColor = Color(uiColor: .mvmWhite) + } + + if disabledFillColor == nil && disabledTextColor == nil { + disabledFillColor = Color(uiColor: .mvmCoolGray6) + disabledTextColor = Color(uiColor: .mvmWhite) + } enabledFillColor_inverted = Color(uiColor: .mvmWhite) enabledTextColor_inverted = Color(uiColor: .mvmBlack) disabledFillColor_inverted = Color(uiColor: .mvmCoolGray6) @@ -143,10 +143,15 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW /// Defines the default appearance for the Secondary style. func setSecondaryFacade() { - enabledTextColor = Color(uiColor: .mvmBlack) - enabledBorderColor = Color(uiColor: .mvmBlack) - disabledTextColor = Color(uiColor: .mvmCoolGray6) - disabledBorderColor = Color(uiColor: .mvmCoolGray6) + if enabledTextColor == nil && enabledBorderColor == nil { + enabledTextColor = Color(uiColor: .mvmBlack) + enabledBorderColor = Color(uiColor: .mvmBlack) + } + + if disabledTextColor == nil && disabledBorderColor == nil { + disabledTextColor = Color(uiColor: .mvmCoolGray6) + disabledBorderColor = Color(uiColor: .mvmCoolGray6) + } enabledTextColor_inverted = Color(uiColor: .mvmWhite) enabledBorderColor_inverted = Color(uiColor: .mvmWhite) disabledTextColor_inverted = Color(uiColor: .mvmCoolGray6) @@ -168,6 +173,12 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW case size case facade case groupName + case fillColor + case textColor + case borderColor + case disabledFillColor + case disabledTextColor + case disabledBorderColor } //-------------------------------------------------- @@ -200,6 +211,13 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW if let groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName) { self.groupName = groupName } + + enabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .fillColor) + enabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .textColor) + enabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .borderColor) + disabledFillColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledFillColor) + disabledTextColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledTextColor) + disabledBorderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .disabledBorderColor) } public func encode(to encoder: Encoder) throws { @@ -210,6 +228,12 @@ public class ButtonModel: ButtonModelProtocol, MoleculeModelProtocol, FormGroupW try container.encode(isInverted, forKey: .inverted) try container.encodeModel(action, forKey: .action) try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) + try container.encodeIfPresent(enabledFillColor, forKey: .fillColor) + try container.encodeIfPresent(enabledTextColor, forKey: .textColor) + try container.encodeIfPresent(enabledBorderColor, forKey: .borderColor) + try container.encodeIfPresent(disabledFillColor, forKey: .disabledFillColor) + try container.encodeIfPresent(disabledTextColor, forKey: .disabledTextColor) + try container.encodeIfPresent(disabledBorderColor, forKey: .disabledBorderColor) try container.encodeIfPresent(style, forKey: .style) try container.encodeIfPresent(size, forKey: .size) try container.encodeIfPresent(groupName, forKey: .groupName)