Skip to content

Commit

Permalink
NC-4886: Update namiCampaignManager.refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-sumi-k committed Jul 3, 2024
1 parent 11b8f3a commit 0da1ac8
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 14 deletions.
10 changes: 8 additions & 2 deletions android/src/main/java/com/nami/reactlibrary/NamiCampaignManagerBridge.kt
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,14 @@ class NamiCampaignManagerBridgeModule(reactContext: ReactApplicationContext) :
}

@ReactMethod
fun refresh() {
NamiCampaignManager.refresh() { }
fun refresh(promise: Promise) {
NamiCampaignManager.refresh { campaigns ->
val array = WritableNativeArray()
campaigns?.forEach { campaign ->
array.pushMap(campaignToReadableMap(campaign))
}
promise.resolve(array)
}
}

@ReactMethod
Expand Down
13 changes: 11 additions & 2 deletions examples/Basic/containers/CampaignScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,15 @@ const CampaignScreen: FC<CampaignScreenProps> = ({ navigation }) => {
return validCampaigns;
}, []);

const getRefreshedCampaigns = useCallback(async () => {
const fetchedCampaigns = await NamiCampaignManager.refresh();
const refreshedCampaigns = fetchedCampaigns.filter((campaign) =>
Boolean(campaign.value),
);
setCampaigns(refreshedCampaigns);
return refreshedCampaigns;
}, []);

useEffect(() => {
getAllCampaigns();
const subscriptionSignInRemover = NamiPaywallManager.registerSignInHandler(
Expand Down Expand Up @@ -197,7 +206,7 @@ const CampaignScreen: FC<CampaignScreenProps> = ({ navigation }) => {
const onRefreshPress = useCallback(() => {
getAllCampaigns();
setRefresh(!refresh);
NamiCampaignManager.refresh();
getRefreshedCampaigns();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

Expand All @@ -212,7 +221,7 @@ const CampaignScreen: FC<CampaignScreenProps> = ({ navigation }) => {
onRefreshPress={() => {
getAllCampaigns();
setRefresh(!refresh);
NamiCampaignManager.refresh();
getRefreshedCampaigns();
}}
/>
),
Expand Down
4 changes: 2 additions & 2 deletions examples/Basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@
"react": "17.0.2",
"react-native": "0.65.2",
"react-native-gesture-handler": "^1.8.0",
"react-native-iap": "10.1.3",
"react-native-nami-sdk": "file:../../",
"react-native-reanimated": "^2.14.4",
"react-native-safe-area-context": "^3.3.2",
"react-native-screens": "3.18.2",
"react-native-iap": "10.1.3"
"react-native-screens": "3.18.2"
},
"devDependencies": {
"@babel/core": "^7.16.5",
Expand Down
8 changes: 6 additions & 2 deletions examples/TestNamiTV/containers/CampaignScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,12 @@ const CampaignScreen: FC<CampaignScreenProps> = ({ navigation }) => {

const onItemPressDefault = useCallback(() => triggerLaunch(null, null), []);

const onRefreshPress = useCallback(() => {
NamiCampaignManager.refresh();
const onRefreshPress = useCallback(async () => {
const fetchedCampaigns = await NamiCampaignManager.refresh();
const refreshedCampaigns = fetchedCampaigns.filter(campaign =>
Boolean(campaign.value),
);
setCampaigns(refreshedCampaigns);
}, []);

useLayoutEffect(() => {
Expand Down
2 changes: 1 addition & 1 deletion ios/NamiCampaignManagerBridge.m
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ @interface RCT_EXTERN_MODULE(RNNamiCampaignManager, NSObject)

RCT_EXTERN_METHOD(isCampaignAvailable:(nullable NSString *)campaignSource resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(refresh)
RCT_EXTERN_METHOD(refresh:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(registerAvailableCampaignsHandler)

Expand Down
9 changes: 6 additions & 3 deletions ios/NamiCampaignManagerBridge.swift
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,12 @@ class RNNamiCampaignManager: RCTEventEmitter {
resolve(isCampaignAvailable)
}

@objc(refresh)
func refresh() {
NamiCampaignManager.refresh()
@objc(refresh:rejecter:)
func refresh(resolve: @escaping RCTPromiseResolveBlock, reject _: @escaping RCTPromiseRejectBlock) {
NamiCampaignManager.refresh { campaigns in
let dictionaries = campaigns.map { campaign in self.campaignInToDictionary(campaign) }
resolve(dictionaries)
}
}

@objc(registerAvailableCampaignsHandler)
Expand Down
2 changes: 1 addition & 1 deletion src/NamiCampaignManager.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interface ICampaignManager {
allCampaigns: () => Promise<Array<NamiCampaign>>;
isCampaignAvailable(campaignSource: string | null): Promise<boolean>;
launch: (label?: string, 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) => void;
refresh: () => void;
refresh: () => Promise<Array<NamiCampaign>>;
registerAvailableCampaignsHandler: (callback: (availableCampaigns: NamiCampaign[]) => void) => EmitterSubscription['remove'];
}
export declare const NamiCampaignManager: ICampaignManager;
Expand Down
2 changes: 1 addition & 1 deletion src/NamiCampaignManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ interface ICampaignManager {
resultCallback?: (success: boolean, error?: LaunchCampaignError) => void,
actionCallback?: NamiPaywallActionHandler,
) => void;
refresh: () => void;
refresh: () => Promise<Array<NamiCampaign>>;
registerAvailableCampaignsHandler: (
callback: (availableCampaigns: NamiCampaign[]) => void,
) => EmitterSubscription['remove'];
Expand Down

0 comments on commit 0da1ac8

Please sign in to comment.