From 40c6d60138b54d423e22148ead3aa76ec12fb527 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:37:07 -0700 Subject: [PATCH] improve: add more capabilities to FilledButtonStyle --- .../Styles/FilledButtonStyle.swift | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/AltStore/SwiftUI/View Extensions/Styles/FilledButtonStyle.swift b/AltStore/SwiftUI/View Extensions/Styles/FilledButtonStyle.swift index 55879cba..ec4e5e4f 100644 --- a/AltStore/SwiftUI/View Extensions/Styles/FilledButtonStyle.swift +++ b/AltStore/SwiftUI/View Extensions/Styles/FilledButtonStyle.swift @@ -10,15 +10,25 @@ import SwiftUI struct FilledButtonStyle: ButtonStyle { var isLoading: Bool = false + var hideLabelOnLoading: Bool = true + var tintColor: Color = .accentColor func makeBody(configuration: Configuration) -> some View { - ZStack { - configuration.label - .opacity(isLoading ? 0 : 1) + HStack { + if !isLoading || !hideLabelOnLoading { + configuration.label + } if isLoading { - ProgressView() - .progressViewStyle(CircularProgressViewStyle()) + // We want to add padding to the left if we don't hide the label + if hideLabelOnLoading { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + } else { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .padding([.leading], 2) + } } } .foregroundColor(.white) @@ -27,10 +37,11 @@ struct FilledButtonStyle: ButtonStyle { .padding() .background( RoundedRectangle(cornerRadius: 12) - .foregroundColor(.accentColor) + .foregroundColor(tintColor) ) .opacity(configuration.isPressed || isLoading ? 0.7 : 1) .disabled(isLoading) + .enableInjection() } }