From c983f4f362b07b355652f35ed6d453743521ff3f Mon Sep 17 00:00:00 2001 From: Dan Burcaw <92536821+namidan@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:55:57 -0600 Subject: [PATCH] paywall event sku bugfix (#340) --- .../reactlibrary/NamiCampaignManagerBridge.kt | 15 ++++++++++++--- ios/NamiCampaignManagerBridge.swift | 11 ++++++++++- package.json | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/nami/reactlibrary/NamiCampaignManagerBridge.kt b/android/src/main/java/com/nami/reactlibrary/NamiCampaignManagerBridge.kt index df4b58b0..a93c834f 100644 --- a/android/src/main/java/com/nami/reactlibrary/NamiCampaignManagerBridge.kt +++ b/android/src/main/java/com/nami/reactlibrary/NamiCampaignManagerBridge.kt @@ -21,7 +21,7 @@ class NamiCampaignManagerBridgeModule(reactContext: ReactApplicationContext) : const val CAMPAIGN_LABEL = "campaignLabel" const val PAYWALL_ID = "paywallId" const val ACTION = "action" - const val SKU_ID = "skuId" + const val SKU = "sku" const val PURCHASE_ERROR = "purchaseError" const val PURCHASES = "purchases" const val CAMPAIGN_NAME = "campaignName" @@ -153,7 +153,6 @@ class NamiCampaignManagerBridgeModule(reactContext: ReactApplicationContext) : actionCallback: Callback, ) { val actionString = paywallEvent.action.toString() - val skuString = paywallEvent.sku?.skuId ?: "" val purchasesArray = createPurchaseArray(paywallEvent.purchases) @@ -163,7 +162,6 @@ class NamiCampaignManagerBridgeModule(reactContext: ReactApplicationContext) : putString(CAMPAIGN_LABEL, paywallEvent.campaignLabel ?: "") putString(PAYWALL_ID, paywallEvent.paywallId) putString(ACTION, actionString) - putString(SKU_ID, skuString) putString(PURCHASE_ERROR, paywallEvent.purchaseError ?: "") putArray(PURCHASES, purchasesArray) putString(CAMPAIGN_NAME, paywallEvent.campaignName ?: "") @@ -175,6 +173,17 @@ class NamiCampaignManagerBridgeModule(reactContext: ReactApplicationContext) : putString(DEEP_LINK_URL, paywallEvent.deeplinkUrl ?: "") } + if (paywallEvent.sku != null) { + val skuMap = + Arguments.createMap().apply { + putString("id", paywallEvent.sku?.id ?: "") + putString("skuId", paywallEvent.sku?.skuId ?: "") + putString("name", paywallEvent.sku?.name ?: "") + putString("name", paywallEvent.sku?.type ?: "unknown") + } + resultMap.putMap(SKU, skuMap) + } + if (paywallEvent.componentChange != null) { val componentChangeMap = Arguments.createMap().apply { diff --git a/ios/NamiCampaignManagerBridge.swift b/ios/NamiCampaignManagerBridge.swift index 75806e7e..b6ff1f71 100644 --- a/ios/NamiCampaignManagerBridge.swift +++ b/ios/NamiCampaignManagerBridge.swift @@ -106,6 +106,15 @@ class RNNamiCampaignManager: RCTEventEmitter { let dictionaries = paywallEvent.purchases.map { purchase in RNNamiPurchaseManager.purchaseToPurchaseDict(purchase) } + var skuDict: [String: Any?] = [:] + + if let sku = paywallEvent.sku { + skuDict["id"] = sku.id + skuDict["name"] = sku.name + skuDict["skuId"] = sku.skuId + skuDict["type"] = sku.type + } + var componentChange: [String: Any?] = [:] if let eventComponentChange = paywallEvent.componentChange { @@ -137,7 +146,7 @@ class RNNamiCampaignManager: RCTEventEmitter { "segmentId": paywallEvent.segmentId, "externalSegmentId": paywallEvent.externalSegmentId, "action": actionString, - "skuId": paywallEvent.sku?.skuId, + "sku": skuDict, "purchaseError": errorSting, "purchases": dictionaries, "deeplinkUrl": paywallEvent.deeplinkUrl, diff --git a/package.json b/package.json index 1fdc7fb5..bff22395 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-nami-sdk", - "version": "3.2.2-3", + "version": "3.2.2-4", "description": "React Native Module for Nami - Easy subscriptions & in-app purchases, with powerful built-in paywalls and A/B testing.", "main": "index.ts", "types": "index.d.ts",