Files
purchases-ios/RevenueCatUI/Views/PackageButtonStyle.swift
T

39 lines
1.1 KiB
Swift
Raw Normal View History

//
// Copyright RevenueCat Inc. All Rights Reserved.
//
// Licensed under the MIT License (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://opensource.org/licenses/MIT
//
// PackageButtonStyle.swift
//
// Created by Nacho Soto on 7/29/23.
import SwiftUI
/// A `ButtonStyle` suitable to be used for a package selection button.
/// Features:
/// - Automatic handling of disabled state
/// - Replaces itself with a loading indicator if it's the selected package.
@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
struct PackageButtonStyle: ButtonStyle {
var fadeDuringPurchases: Bool = true
@EnvironmentObject
private var purchaseHandler: PurchaseHandler
func makeBody(configuration: ButtonStyleConfiguration) -> some View {
configuration
.label
2023-08-30 18:13:14 -07:00
.contentShape(Rectangle())
.opacity(
self.fadeDuringPurchases && self.purchaseHandler.actionInProgress
? Constants.purchaseInProgressButtonOpacity
: 1
)
}
}