From 27d05f67c7acb2ef58372a3f6e2448a1e6668756 Mon Sep 17 00:00:00 2001 From: Sumita Canopas Date: Fri, 21 Jun 2024 10:13:47 +0530 Subject: [PATCH] Update NamiCampaignManager.launch --- examples/Basic/containers/CampaignScreen.tsx | 40 +-------- examples/Basic/services/deeplinking.ts | 34 +------- .../TestNamiTV/containers/CampaignScreen.tsx | 34 +------- examples/TestNamiTV/services/deeplinking.ts | 34 +------- src/NamiCampaignManager.ts | 81 ++++++------------- src/types.ts | 4 +- 6 files changed, 39 insertions(+), 188 deletions(-) diff --git a/examples/Basic/containers/CampaignScreen.tsx b/examples/Basic/containers/CampaignScreen.tsx index f5e5e7e4..1d647500 100644 --- a/examples/Basic/containers/CampaignScreen.tsx +++ b/examples/Basic/containers/CampaignScreen.tsx @@ -11,6 +11,7 @@ import { NamiPaywallManager, NamiPaywallAction, NamiCampaignRuleType, + NamiPaywallEvent, } from 'react-native-nami-sdk'; import { FlatList, @@ -165,43 +166,10 @@ const CampaignScreen: FC = ({ navigation }) => { console.log('error', error); checkIfPaywallOpen(); - }, - ( - action, - campaignId, - paywallId, - campaignName, - campaignType, - campaignLabel, - campaignUrl, - paywallName, - segmentId, - externalSegmentId, - deeplinkUrl, - skuId, - componentChangeId, - componentChangeName, - purchaseError, - purchases, - ) => { - console.log('action', action); - setAction(action); - console.log('campaignId', campaignId); - console.log('paywallId', paywallId); - console.log('campaignName', campaignName); - console.log('campaignType', campaignType); - console.log('campaignLabel', campaignLabel); - console.log('campaignUrl', campaignUrl); - console.log('paywallName', paywallName); - console.log('segmentId', segmentId); - console.log('externalSegmentId', externalSegmentId); - console.log('deeplinkUrl', deeplinkUrl); - console.log('skuId', skuId); - console.log('componentChangeId', componentChangeId); - console.log('componentChangeName', componentChangeName); - console.log('purchaseError', purchaseError); - console.log('purchases', purchases); + (event: NamiPaywallEvent) => { + console.log('event', event); + setAction(event.action); }, ); }; diff --git a/examples/Basic/services/deeplinking.ts b/examples/Basic/services/deeplinking.ts index 44442f64..94f10af8 100644 --- a/examples/Basic/services/deeplinking.ts +++ b/examples/Basic/services/deeplinking.ts @@ -1,4 +1,4 @@ -import { NamiCampaignManager } from 'react-native-nami-sdk'; +import { NamiCampaignManager, NamiPaywallEvent } from 'react-native-nami-sdk'; interface HandleDeepLinkParams { url: string; @@ -22,36 +22,8 @@ export async function handleDeepLink(params: HandleDeepLinkParams) { (success, error) => { console.log(success, error); }, - ( - action, - campaignId, - paywallId, - campaignLabel, - campaignName, - campaignType, - campaignUrl, - segmentId, - externalSegmentId, - paywallName, - deeplinkUrl, - skuId, - purchaseError, - purchases, - ) => { - console.log('action', action); - console.log('campaignId', campaignId); - console.log('paywallId', paywallId); - console.log('campaignLabel', campaignLabel); - console.log('campaignName', campaignName); - console.log('campaignType', campaignType); - console.log('campaignUrl', campaignUrl); - console.log('paywallName', paywallName); - console.log('segmentId', segmentId); - console.log('externalSegmentId', externalSegmentId); - console.log('deeplinkUrl', deeplinkUrl); - console.log('skuId', skuId); - console.log('purchaseError', purchaseError); - console.log('purchases', purchases); + (event: NamiPaywallEvent) => { + console.log('event', event); }, ); } diff --git a/examples/TestNamiTV/containers/CampaignScreen.tsx b/examples/TestNamiTV/containers/CampaignScreen.tsx index d5756cff..5c916c4a 100644 --- a/examples/TestNamiTV/containers/CampaignScreen.tsx +++ b/examples/TestNamiTV/containers/CampaignScreen.tsx @@ -12,7 +12,7 @@ import { Text, TouchableOpacity, } from 'react-native'; -import { NamiCampaignManager, NamiCampaign, NamiCampaignRuleType } from 'react-native-nami-sdk'; +import { NamiCampaignManager, NamiCampaign, NamiCampaignRuleType, NamiPaywallEvent } from 'react-native-nami-sdk'; import { ViewerTabProps } from '../App'; import theme from '../theme'; import { SafeAreaView } from 'react-native-safe-area-context'; @@ -65,36 +65,8 @@ const CampaignScreen: FC = ({ navigation }) => { console.log('successAction', successAction); console.log('error', error); }, - ( - action, - campaignId, - paywallId, - campaignName, - campaignType, - campaignLabel, - campaignUrl, - paywallName, - segmentId, - externalSegmentId, - deeplinkUrl, - skuId, - purchaseError, - purchases, - ) => { - console.log('action', action); - console.log('campaignId', campaignId); - console.log('paywallId', paywallId); - console.log('campaignLabel', campaignLabel); - console.log('campaignName', campaignName); - console.log('campaignType', campaignType); - console.log('campaignUrl', campaignUrl); - console.log('paywallName', paywallName); - console.log('segmentId', segmentId); - console.log('externalSegmentId', externalSegmentId); - console.log('deeplinkUrl', deeplinkUrl); - console.log('skuId', skuId); - console.log('purchaseError', purchaseError); - console.log('purchases', purchases); + (event: NamiPaywallEvent) => { + console.log('event', event); }, ); }; diff --git a/examples/TestNamiTV/services/deeplinking.ts b/examples/TestNamiTV/services/deeplinking.ts index 44442f64..94f10af8 100644 --- a/examples/TestNamiTV/services/deeplinking.ts +++ b/examples/TestNamiTV/services/deeplinking.ts @@ -1,4 +1,4 @@ -import { NamiCampaignManager } from 'react-native-nami-sdk'; +import { NamiCampaignManager, NamiPaywallEvent } from 'react-native-nami-sdk'; interface HandleDeepLinkParams { url: string; @@ -22,36 +22,8 @@ export async function handleDeepLink(params: HandleDeepLinkParams) { (success, error) => { console.log(success, error); }, - ( - action, - campaignId, - paywallId, - campaignLabel, - campaignName, - campaignType, - campaignUrl, - segmentId, - externalSegmentId, - paywallName, - deeplinkUrl, - skuId, - purchaseError, - purchases, - ) => { - console.log('action', action); - console.log('campaignId', campaignId); - console.log('paywallId', paywallId); - console.log('campaignLabel', campaignLabel); - console.log('campaignName', campaignName); - console.log('campaignType', campaignType); - console.log('campaignUrl', campaignUrl); - console.log('paywallName', paywallName); - console.log('segmentId', segmentId); - console.log('externalSegmentId', externalSegmentId); - console.log('deeplinkUrl', deeplinkUrl); - console.log('skuId', skuId); - console.log('purchaseError', purchaseError); - console.log('purchases', purchases); + (event: NamiPaywallEvent) => { + console.log('event', event); }, ); } diff --git a/src/NamiCampaignManager.ts b/src/NamiCampaignManager.ts index 04e44e0b..84c0b927 100644 --- a/src/NamiCampaignManager.ts +++ b/src/NamiCampaignManager.ts @@ -6,8 +6,8 @@ import { import { LaunchCampaignError, NamiCampaign, - NamiPaywallAction, - NamiPurchase, + NamiPaywallActionHandler, + NamiPaywallEvent, PaywallLaunchContext, } from './types'; @@ -30,24 +30,7 @@ interface ICampaignManager { withUrl?: string, context?: PaywallLaunchContext, resultCallback?: (success: boolean, error?: LaunchCampaignError) => void, - actionCallback?: ( - action: NamiPaywallAction, - campaignId: string, - paywallId: string, - campaignName?: string, - campaignType?: string, - campaignLabel?: string, - campaignUrl?: string, - paywallName?: string, - segmentId?: string, - externalSegmentId?: string, - deeplinkUrl?: string, - skuId?: string, - componentChangeId?: string, - componentChangeName?: string, - purchaseError?: string, - purchases?: NamiPurchase[], - ) => void, + actionCallback?: NamiPaywallActionHandler, ) => void; refresh: () => void; registerAvailableCampaignsHandler: ( @@ -71,43 +54,25 @@ export const NamiCampaignManager: ICampaignManager = { ? body.action.substring(5, body.action.length) : body.action; - const { - action, - campaignId, - paywallId, - campaignName, - campaignType, - campaignLabel, - campaignUrl, - paywallName, - segmentId, - externalSegmentId, - deeplinkUrl, - skuId, - componentChangeId, - componentChangeName, - purchaseError, - purchases, - } = body; if (actionCallback) { - actionCallback( - action, - campaignId, - paywallId, - campaignName, - campaignType, - campaignLabel, - campaignUrl, - paywallName, - segmentId, - externalSegmentId, - deeplinkUrl, - skuId, - componentChangeId, - componentChangeName, - purchaseError, - purchases, - ); + const paywallEvent: NamiPaywallEvent = { + action: body.action, + campaignId: body.campaignId, + campaignName: body.campaignName, + campaignType: body.campaignType, + campaignLabel: body.campaignLabel, + campaignUrl: body.campaignUrl, + paywallId: body.paywallId, + paywallName: body.paywallName, + componentChange: body.componentChange, + segmentId: body.segmentId, + externalSegmentId: body.externalSegmentId, + deeplinkUrl: body.deeplinkUrl, + sku: body.sku, + purchaseError: body.purchaseError, + purchases: body.purchases, + } + actionCallback(paywallEvent) } }, ); @@ -115,8 +80,8 @@ export const NamiCampaignManager: ICampaignManager = { label ?? null, withUrl ?? null, context ?? null, - resultCallback ?? (() => {}), - actionCallback ?? (() => {}), + resultCallback ?? (() => { }), + actionCallback ?? (() => { }), ); }, diff --git a/src/types.ts b/src/types.ts index 76d348e4..64b65c8a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -314,7 +314,9 @@ export type NamiPaywallEvent = { sku?: NamiSKU; purchaseError?: string; purchases?: NamiPurchase[]; -}; +} + +export type NamiPaywallActionHandler = (event: NamiPaywallEvent) => void; export type NamiPaywallComponentChange = { id?: string;