From 5e17bb926c016d77f1a6af85cacf4e11fae2ed95 Mon Sep 17 00:00:00 2001 From: Ace Green Date: Sun, 31 Jul 2022 19:50:52 -0400 Subject: [PATCH] [PR Request] - Removes default .black rendering for CircledIconView (#92) --- Sources/StepperView/Extension/View+Extensions.swift | 13 +++++++++++++ .../Views/Indicators/CircledIconView.swift | 9 +++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Sources/StepperView/Extension/View+Extensions.swift b/Sources/StepperView/Extension/View+Extensions.swift index 3157ceb..e434acb 100644 --- a/Sources/StepperView/Extension/View+Extensions.swift +++ b/Sources/StepperView/Extension/View+Extensions.swift @@ -206,3 +206,16 @@ public extension View { return EmptyView() } } + +// MARK: - Helper function of View to operate on. +/// Helper function of `View` to operate on +@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) +extension View { + func `if`(_ conditional: Bool, content: (Self) -> Content) -> TupleView<(Self?, Content?)> { + if conditional { + return TupleView((nil, content(self))) + } else { + return TupleView((self, nil)) + } + } +} diff --git a/Sources/StepperView/Views/Indicators/CircledIconView.swift b/Sources/StepperView/Views/Indicators/CircledIconView.swift index 63fe272..ddbc5f0 100644 --- a/Sources/StepperView/Views/Indicators/CircledIconView.swift +++ b/Sources/StepperView/Views/Indicators/CircledIconView.swift @@ -15,14 +15,14 @@ public struct CircledIconView: View { /// width for step indicator public var width:CGFloat /// color for step indicator - public var color:Color + public var color:Color? /// stroke color for step indicator public var strokeColor:Color /// detect the color scheme i.e., light or dark mode @Environment(\.colorScheme) var colorScheme: ColorScheme /// initiazes `image` , `width` , `color` and `strokeColor` - public init(image:Image, width:CGFloat, color: Color = Color.black, strokeColor: Color = Colors.blue(.lightSky).rawValue) { + public init(image:Image, width:CGFloat, color: Color?, strokeColor: Color = Colors.blue(.lightSky).rawValue) { self.image = image self.width = width self.color = color @@ -39,8 +39,9 @@ public struct CircledIconView: View { .stroke(strokeColor, lineWidth: 1) .overlay(image .resizable() - .renderingMode(.template) - .foregroundColor(self.color) + .if(color != nil){ + $0.renderingMode(.template).foregroundColor(color) + } .frame(width: width/2, height: width/2) .aspectRatio(contentMode: .fit))) }