From 2be5f8749710f3f5003b0dedf21dc2cb9a2b7346 Mon Sep 17 00:00:00 2001 From: Jose Salavert Date: Tue, 19 Mar 2024 09:30:23 +0100 Subject: [PATCH 1/5] feat(DataCard): LATCH-1334 Now DataCard allows color customization --- .../Components/Cards/DataCard.swift | 115 ++++++++++++++---- 1 file changed, 90 insertions(+), 25 deletions(-) diff --git a/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift b/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift index 50aa55fc8..3e0da4f4a 100644 --- a/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift +++ b/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift @@ -14,6 +14,28 @@ public enum DataCardAssetType { case image(image: Image) } +public struct DataCardColorsConfiguration { + var primaryTextColor: Color + var secondaryTextColor: Color + var backgroundColor: Color + var borderColor: Color + var dismissColor: Color + + public init( + primaryTextColor: Color = .textPrimary, + secondaryTextColor: Color = .textSecondary, + backgroundColor: Color = .backgroundContainer, + borderColor: Color = .border, + dismissColor: Color = .neutralHigh + ) { + self.primaryTextColor = primaryTextColor + self.secondaryTextColor = secondaryTextColor + self.backgroundColor = backgroundColor + self.borderColor = borderColor + self.dismissColor = dismissColor + } +} + public struct DataCard: View { private let assetType: DataCardAssetType private let headline: Headline? @@ -25,6 +47,7 @@ public struct DataCard Void)?, primaryButton: PrimaryButton, linkButton: LinkButton, - fragmentView: Fragment + fragmentView: Fragment, + colorsConfiguration: DataCardColorsConfiguration = .init() ) { self.assetType = assetType self.headline = headline @@ -60,6 +84,7 @@ public struct DataCard Void)? = nil, @ViewBuilder primaryButton: () -> PrimaryButton, @ViewBuilder linkButton: () -> LinkButton, - @ViewBuilder fragmentView: () -> Fragment + @ViewBuilder fragmentView: () -> Fragment, + colorsConfiguration: DataCardColorsConfiguration = .init() ) { self.init( assetType: assetType, @@ -312,7 +339,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: primaryButton(), linkButton: linkButton(), - fragmentView: fragmentView() + fragmentView: fragmentView(), + colorsConfiguration: colorsConfiguration ) } @@ -324,7 +352,8 @@ public extension DataCard { description: String? = nil, dismissAction: (() -> Void)? = nil, @ViewBuilder primaryButton: () -> PrimaryButton, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where Fragment == EmptyView { self.init( assetType: assetType, @@ -335,7 +364,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: primaryButton(), linkButton: linkButton(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } @@ -346,7 +376,8 @@ public extension DataCard { subtitle: String? = nil, description: String? = nil, dismissAction: (() -> Void)? = nil, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where PrimaryButton == EmptyView, Fragment == EmptyView { self.init( assetType: assetType, @@ -357,7 +388,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: linkButton(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } @@ -369,7 +401,8 @@ public extension DataCard { description: String? = nil, dismissAction: (() -> Void)? = nil, @ViewBuilder fragmentView: () -> Fragment, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where PrimaryButton == EmptyView, LinkButton == EmptyView { self.init( assetType: assetType, @@ -380,7 +413,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: linkButton(), - fragmentView: fragmentView() + fragmentView: fragmentView(), + colorsConfiguration: colorsConfiguration ) } @@ -390,7 +424,8 @@ public extension DataCard { title: String? = nil, subtitle: String? = nil, description: String? = nil, - dismissAction: (() -> Void)? = nil + dismissAction: (() -> Void)? = nil, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where LinkButton == EmptyView, PrimaryButton == EmptyView, Fragment == EmptyView { self.init( assetType: assetType, @@ -401,7 +436,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: EmptyView(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } @@ -414,7 +450,8 @@ public extension DataCard { description: String? = nil, dismissAction: (() -> Void)? = nil, @ViewBuilder primaryButton: () -> PrimaryButton, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where Fragment == EmptyView, Headline == EmptyView { self.init( assetType: assetType, @@ -425,7 +462,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: primaryButton(), linkButton: linkButton(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } @@ -435,7 +473,8 @@ public extension DataCard { subtitle: String? = nil, description: String? = nil, dismissAction: (() -> Void)? = nil, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where PrimaryButton == EmptyView, Fragment == EmptyView, Headline == EmptyView { self.init( assetType: assetType, @@ -446,7 +485,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: linkButton(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } @@ -457,7 +497,8 @@ public extension DataCard { description: String? = nil, dismissAction: (() -> Void)? = nil, @ViewBuilder fragmentView: () -> Fragment, - @ViewBuilder linkButton: () -> LinkButton + @ViewBuilder linkButton: () -> LinkButton, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where PrimaryButton == EmptyView, LinkButton == EmptyView, Headline == EmptyView { self.init( assetType: assetType, @@ -468,7 +509,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: linkButton(), - fragmentView: fragmentView() + fragmentView: fragmentView(), + colorsConfiguration: colorsConfiguration ) } @@ -477,7 +519,8 @@ public extension DataCard { title: String? = nil, subtitle: String? = nil, description: String? = nil, - dismissAction: (() -> Void)? = nil + dismissAction: (() -> Void)? = nil, + colorsConfiguration: DataCardColorsConfiguration = .init() ) where PrimaryButton == EmptyView, LinkButton == EmptyView, Fragment == EmptyView, Headline == EmptyView { self.init( assetType: assetType, @@ -488,7 +531,8 @@ public extension DataCard { dismissAction: dismissAction, primaryButton: EmptyView(), linkButton: EmptyView(), - fragmentView: EmptyView() + fragmentView: EmptyView(), + colorsConfiguration: colorsConfiguration ) } } @@ -500,6 +544,27 @@ public extension DataCard { struct DataCard_Previews: PreviewProvider { static var previews: some View { Preview { + DataCard( + assetType: .icon( + image: Image(systemName: "plus"), + foregroundColor: .neutralMedium, + backgroundColor: .neutralLow + ), + title: "title", + subtitle: "subtitle", + description: nil, + dismissAction: {}, + colorsConfiguration: .init( + primaryTextColor: .textPrimaryInverse, + secondaryTextColor: .textSecondaryInverse, + backgroundColor: .backgroundBrand, + borderColor: .border, + dismissColor: .neutralLow + ) + ) + .frame(width: 350) + .previewDisplayName("Colors") + DataCard( assetType: .image(image: Image(systemName: "photo")), headline: { Tag(style: .promo, text: "headline") }, From 108974cd57b8103c456e33807b63cfb2d730b829 Mon Sep 17 00:00:00 2001 From: salavert Date: Tue, 19 Mar 2024 10:18:10 +0100 Subject: [PATCH 2/5] Run swiftformat --- Sources/MisticaSwiftUI/Components/Cards/DataCard.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift b/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift index 3e0da4f4a..ace925b4f 100644 --- a/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift +++ b/Sources/MisticaSwiftUI/Components/Cards/DataCard.swift @@ -20,7 +20,7 @@ public struct DataCardColorsConfiguration { var backgroundColor: Color var borderColor: Color var dismissColor: Color - + public init( primaryTextColor: Color = .textPrimary, secondaryTextColor: Color = .textSecondary, From ad812dc9b72d96d055aa493c0310d5551e2ea51d Mon Sep 17 00:00:00 2001 From: Jose Salavert Date: Tue, 19 Mar 2024 11:13:30 +0100 Subject: [PATCH 3/5] feat(DataCard): LATCH-1334 Fixing tests --- .../DataCardTests/testAlternativeColors.1.png | Bin 0 -> 25984 bytes .../DataCardTests/testDismissAction.1.png | Bin 32043 -> 32044 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Tests/MisticaSwiftUITests/UI/__Snapshots__/DataCardTests/testAlternativeColors.1.png diff --git a/Tests/MisticaSwiftUITests/UI/__Snapshots__/DataCardTests/testAlternativeColors.1.png b/Tests/MisticaSwiftUITests/UI/__Snapshots__/DataCardTests/testAlternativeColors.1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f662c7213f1b436198c007692405e4afda7fef7 GIT binary patch literal 25984 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 literal 0 HcmV?d00001 diff --git a/Tests/MisticaSwiftUITests/UI/__Snapshots__/DataCardTests/testDismissAction.1.png b/Tests/MisticaSwiftUITests/UI/__Snapshots__/DataCardTests/testDismissAction.1.png index 0f62107305c58282fb24cb7da31fe6800c201922..99f1adb1593c07316b87cef79a2e6b3016efb033 100644 GIT binary patch delta 11017 zcmZu%dpy(o|Ih8XeI=)h%4MQbM@%V~T(&OKl`h96w%2dvi$qP zVJW2}r!SpZCv{1>-TuIgrJ>YeLnTSE%TLm=qkn9EmN9rQLpdak%F69O@+jd+!jtp1 z=g;^~JYc@jF38uUnv7#I1+#tkqi54D?b3qZS|uhfDYHgn@rUisKXKbhR%(C#`|sbs zIHqAFTW~6l}o#~H`s8*Yy8FB}M&>x*lepPP)p z^w%fGb@0C?nHtTxU05A2(SOTi#W$0BY~Y->EA-~sOBuD+4^uTySY||et>08<=zQU) z#N0$*UBvdUBkcuEepK_g44ahX4C|z!2<*Zufd76K-B?=lx@CXl$of?C{I(ZJiA}X> zV}AW#k5SDgqk;Fn^U{+C!WD0R74xf9)t6rW_9D(?O~S7H_7~xkSUHC8+fVXPlKw@R z6hrTh(+)Tr$jR>~pbDp+#_O9Th4eZ+KYkhbpVPP}NIZPltG(ykyIWS_ zk-OF>{B)ReYU=%UVOaU+#D(>i;2(zOj zS8k(Q_7jJqRn-iAf25|)w@wdll#-!t YkdaSDb%3X8Cap9MWl@VciTOKomxgmB~ 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 RSAk#0EUgdc9K3M*{{R7A#p3_~ delta 11349 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 Date: Tue, 19 Mar 2024 11:26:07 +0100 Subject: [PATCH 4/5] feat(DataCard): LATCH-1334 Adding test --- .../UI/DataCardTests.swift | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Tests/MisticaSwiftUITests/UI/DataCardTests.swift b/Tests/MisticaSwiftUITests/UI/DataCardTests.swift index ff76f3470..dda186fbc 100644 --- a/Tests/MisticaSwiftUITests/UI/DataCardTests.swift +++ b/Tests/MisticaSwiftUITests/UI/DataCardTests.swift @@ -26,6 +26,34 @@ final class DataCardTests: XCTestCase { isRecording = false } + func testAlternativeColors() { + let dataCard = DataCard( + assetType: .icon( + image: Image(systemName: "plus"), + foregroundColor: .neutralMedium, + backgroundColor: .neutralLow + ), + title: "title", + subtitle: "subtitle", + description: nil, + dismissAction: {}, + colorsConfiguration: .init( + primaryTextColor: .textPrimaryInverse, + secondaryTextColor: .textSecondaryInverse, + backgroundColor: .backgroundBrand, + borderColor: .border, + dismissColor: .neutralLow + ) + ) + .frame(width: 300) + .padding(16) + + assertSnapshot( + matching: dataCard, + as: .image + ) + } + func testSingleline() { let dataCard = DataCard( headline: { Tag(style: .promo, text: Constants.headline) }, From fa565217053d76b31b91598b6a5023fc2cad51a7 Mon Sep 17 00:00:00 2001 From: salavert Date: Tue, 19 Mar 2024 11:26:25 +0100 Subject: [PATCH 5/5] Run swiftformat --- Tests/MisticaSwiftUITests/UI/DataCardTests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/MisticaSwiftUITests/UI/DataCardTests.swift b/Tests/MisticaSwiftUITests/UI/DataCardTests.swift index dda186fbc..03f9127be 100644 --- a/Tests/MisticaSwiftUITests/UI/DataCardTests.swift +++ b/Tests/MisticaSwiftUITests/UI/DataCardTests.swift @@ -53,7 +53,7 @@ final class DataCardTests: XCTestCase { as: .image ) } - + func testSingleline() { let dataCard = DataCard( headline: { Tag(style: .promo, text: Constants.headline) },