PaywallViewModel.swift 471 B

123456789101112131415161718
  1. import SwiftUI
  2. @MainActor
  3. @Observable
  4. final class PaywallViewModel {
  5. var selectedPlan: PaywallPlan = .yearly
  6. func selectPlan(_ plan: PaywallPlan) {
  7. selectedPlan = plan
  8. }
  9. func syncSelectedPlan(with availablePlans: [PaywallPlan]) {
  10. guard !availablePlans.isEmpty else { return }
  11. if !availablePlans.contains(selectedPlan) {
  12. selectedPlan = availablePlans.contains(.yearly) ? .yearly : availablePlans[0]
  13. }
  14. }
  15. }