import SwiftUI

@main
struct YourApp: App {
  
  @StateObject
  private var purchaseManager = PurchaseManager()
  
  var body: some Scene {
    WindowGroup {
      ContentView()
        .environmentObject(purchaseManager)
        .task {
          await purchaseManager.updatePurchasedProducts()
        }
    }
  }
}

struct ContentView: View {
  
  @EnvironmentObject
  private var purchaseManager: PurchaseManager
  
  var body: some View {
    VStack {
      Text("Hello World!")
      Text("ℹ️ is premium: \(purchaseManager.isPremium)")
    }
    .task {
      do {
        try await purchaseManager.loadProducts()
        debugPrint("ℹ️ is premium \(purchaseManager.isPremium)")
      } catch(let error) {
        debugPrint("🚨 Error purchaseManager.loadProducts() \(error)")
      }
    }
  }
}

#Preview {
  ContentView()
}