Skip to content

Commit

Permalink
Refactored PurchaseHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
NachoSoto committed Sep 11, 2023
1 parent 0a23c19 commit 6074fa8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
2 changes: 1 addition & 1 deletion RevenueCatUI/PaywallView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ struct LoadedOfferingPaywallView: View {
value: self.purchaseHandler.purchasedCustomerInfo)
.disabled(self.purchaseHandler.actionInProgress)
.onAppear { self.purchaseHandler.trackPaywallView(self.eventData) }
.onDisappear { self.purchaseHandler.trackPaywallClose() }
.onDisappear { self.purchaseHandler.trackPaywallClose(self.eventData) }

switch self.mode {
case .fullScreen:
Expand Down
22 changes: 10 additions & 12 deletions RevenueCatUI/Purchasing/PurchaseHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -108,15 +108,20 @@ extension PurchaseHandler {

func trackPaywallView(_ eventData: PaywallEvent.Data) {
self.eventData = eventData
self.trackEvent(PaywallEvent.view)
self.track(.view(eventData))
}

func trackPaywallClose() {
self.trackEvent(PaywallEvent.close)
func trackPaywallClose(_ eventData: PaywallEvent.Data) {
self.track(.close(eventData))
}

fileprivate func trackCancelledPurchase() {
self.trackEvent(PaywallEvent.cancel)
guard let data = self.eventData else {
Logger.warning(Strings.attempted_to_track_event_with_missing_data)
return
}

self.track(.cancel(data))
}

}
Expand Down Expand Up @@ -151,14 +156,7 @@ extension PurchaseHandler {
@available(iOS 15.0, macOS 12.0, tvOS 15.0, *)
private extension PurchaseHandler {

func trackEvent(_ eventCreator: (PaywallEvent.Data) -> PaywallEvent) {
guard let data = self.eventData else {
Logger.warning(Strings.attempted_to_track_event_with_missing_data)
return
}

let event = eventCreator(data)

func track(_ event: PaywallEvent) {
Task.detached(priority: .background) { [block = self.trackEventBlock] in
await block(event)
}
Expand Down

0 comments on commit 6074fa8

Please sign in to comment.