Skip to content

Commit 75dccb3

Browse files
authored
Merge pull request #688 from Iterable/new-arch/MOB-11828-add-backwards-compatibility
[MOB-11828] add-backwards-compatibility
2 parents 9a1e16d + 288c158 commit 75dccb3

File tree

2 files changed

+239
-6
lines changed

2 files changed

+239
-6
lines changed

ios/RNIterableAPI/RNIterableAPI.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
#import <Foundation/Foundation.h>
22
#import <React/RCTEventEmitter.h>
3-
#import <React/RCTUtils.h>
4-
#import <React/RCTConvert.h>
5-
#import <React/RCTTurboModuleRegistry.h>
6-
#import <RNIterableAPISpec/RNIterableAPISpec.h>
73

4+
#if RCT_NEW_ARCH_ENABLED
5+
6+
#import <React/RCTUtils.h>
7+
#import <React/RCTConvert.h>
8+
#import <React/RCTTurboModuleRegistry.h>
9+
#import <RNIterableAPISpec/RNIterableAPISpec.h>
810
@interface RNIterableAPI : RCTEventEmitter <NativeRNIterableAPISpec>
911

12+
#else
13+
#import <React/RCTBridgeModule.h>
14+
@interface RNIterableAPI : RCTEventEmitter <RCTBridgeModule>
15+
16+
#endif
17+
1018
@end

ios/RNIterableAPI/RNIterableAPI.mm

Lines changed: 227 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#import "RNIterableAPI.h"
2-
#import "RNIterableAPISpec.h"
2+
3+
#if RCT_NEW_ARCH_ENABLED
4+
#import "RNIterableAPISpec.h"
5+
#endif
6+
37
#import <IterableSDK/IterableSDK.h>
48

59
// Forward-declare the Swift protocols/enum used in the Swift header
@@ -44,6 +48,10 @@ - (void)sendEventWithName:(NSString *_Nonnull)name result:(double)result {
4448
[self sendEventWithName:name body:@(result)];
4549
}
4650

51+
#if RCT_NEW_ARCH_ENABLED
52+
53+
// MARK: - New Architecture functions exposed to JS
54+
4755
- (void)startObserving {
4856
[(ReactIterableAPI *)_swiftAPI startObserving];
4957
}
@@ -52,7 +60,6 @@ - (void)stopObserving {
5260
[(ReactIterableAPI *)_swiftAPI stopObserving];
5361
}
5462

55-
// MARK: - RNIterableAPI functions exposed to JS
5663
- (void)initializeWithApiKey:(NSString *)apiKey
5764
config:(NSDictionary *)config
5865
version:(NSString *)version
@@ -272,4 +279,222 @@ - (void)passAlongAuthToken:(NSString *)authToken {
272279
return std::make_shared<facebook::react::NativeRNIterableAPISpecJSI>(params);
273280
}
274281

282+
#else
283+
284+
// MARK: - RCTBridgeModule integration for Legacy Architecture
285+
286+
RCT_EXPORT_METHOD(startObserving) {
287+
[(ReactIterableAPI *)_swiftAPI startObserving];
288+
}
289+
290+
RCT_EXPORT_METHOD(stopObserving) {
291+
[(ReactIterableAPI *)_swiftAPI stopObserving];
292+
}
293+
294+
RCT_EXPORT_METHOD(
295+
initializeWithApiKey : (NSString *)apiKey config : (NSDictionary *)
296+
config version : (NSString *)version resolve : (RCTPromiseResolveBlock)
297+
resolve reject : (RCTPromiseRejectBlock)reject) {
298+
[_swiftAPI initializeWithApiKey:apiKey
299+
config:config
300+
version:version
301+
resolver:resolve
302+
rejecter:reject];
303+
}
304+
305+
RCT_EXPORT_METHOD(
306+
initialize2WithApiKey : (NSString *)apiKey config : (NSDictionary *)
307+
config version : (NSString *)version apiEndPointOverride : (NSString *)
308+
apiEndPointOverride resolve : (RCTPromiseResolveBlock)
309+
resolve reject : (RCTPromiseRejectBlock)reject) {
310+
[_swiftAPI initialize2WithApiKey:apiKey
311+
config:config
312+
apiEndPointOverride:apiEndPointOverride
313+
version:version
314+
resolver:resolve
315+
rejecter:reject];
316+
}
317+
318+
RCT_EXPORT_METHOD(setEmail : (NSString *_Nullable)
319+
email authToken : (NSString *_Nullable)authToken) {
320+
[_swiftAPI setEmail:email authToken:authToken];
321+
}
322+
323+
RCT_EXPORT_METHOD(getEmail : (RCTPromiseResolveBlock)
324+
resolve reject : (RCTPromiseRejectBlock)reject) {
325+
[_swiftAPI getEmail:resolve rejecter:reject];
326+
}
327+
328+
RCT_EXPORT_METHOD(setUserId : (NSString *_Nullable)
329+
userId authToken : (NSString *_Nullable)authToken) {
330+
[_swiftAPI setUserId:userId authToken:authToken];
331+
}
332+
333+
RCT_EXPORT_METHOD(getUserId : (RCTPromiseResolveBlock)
334+
resolve reject : (RCTPromiseRejectBlock)reject) {
335+
[_swiftAPI getUserId:resolve rejecter:reject];
336+
}
337+
338+
RCT_EXPORT_METHOD(setInAppShowResponse : (NSNumber *)inAppShowResponse) {
339+
[_swiftAPI setInAppShowResponse:inAppShowResponse];
340+
}
341+
342+
RCT_EXPORT_METHOD(getInAppMessages : (RCTPromiseResolveBlock)
343+
resolve reject : (RCTPromiseRejectBlock)reject) {
344+
[_swiftAPI getInAppMessages:resolve rejecter:reject];
345+
}
346+
347+
RCT_EXPORT_METHOD(getInboxMessages : (RCTPromiseResolveBlock)
348+
resolve reject : (RCTPromiseRejectBlock)reject) {
349+
[_swiftAPI getInboxMessages:resolve rejecter:reject];
350+
}
351+
352+
RCT_EXPORT_METHOD(getUnreadInboxMessagesCount : (RCTPromiseResolveBlock)
353+
resolve reject : (RCTPromiseRejectBlock)reject) {
354+
[_swiftAPI getUnreadInboxMessagesCount:resolve rejecter:reject];
355+
}
356+
357+
RCT_EXPORT_METHOD(showMessage : (NSString *)messageId consume : (BOOL)
358+
consume resolve : (RCTPromiseResolveBlock)
359+
resolve reject : (RCTPromiseRejectBlock)reject) {
360+
[_swiftAPI showMessage:messageId
361+
consume:consume
362+
resolver:resolve
363+
rejecter:reject];
364+
}
365+
366+
RCT_EXPORT_METHOD(removeMessage : (NSString *)messageId location : (NSNumber *)
367+
location source : (NSNumber *)source) {
368+
[_swiftAPI removeMessage:messageId location:location source:source];
369+
}
370+
371+
RCT_EXPORT_METHOD(setReadForMessage : (NSString *)messageId read : (BOOL)read) {
372+
[_swiftAPI setReadForMessage:messageId read:read];
373+
}
374+
375+
RCT_EXPORT_METHOD(setAutoDisplayPaused : (BOOL)autoDisplayPaused) {
376+
[_swiftAPI setAutoDisplayPaused:autoDisplayPaused];
377+
}
378+
379+
RCT_EXPORT_METHOD(trackEvent : (NSString *)name dataFields : (NSDictionary *)
380+
dataFields) {
381+
[_swiftAPI trackEvent:name dataFields:dataFields];
382+
}
383+
384+
RCT_EXPORT_METHOD(
385+
trackPushOpenWithCampaignId : (NSNumber *)
386+
campaignId templateId : (NSNumber *)templateId messageId : (NSString *)
387+
messageId appAlreadyRunning : (BOOL)
388+
appAlreadyRunning dataFields : (NSDictionary *)dataFields) {
389+
[_swiftAPI trackPushOpenWithCampaignId:campaignId
390+
templateId:templateId
391+
messageId:messageId
392+
appAlreadyRunning:appAlreadyRunning
393+
dataFields:dataFields];
394+
}
395+
396+
RCT_EXPORT_METHOD(trackInAppOpen : (NSString *)messageId location : (NSNumber *)
397+
location) {
398+
[_swiftAPI trackInAppOpen:messageId location:location];
399+
}
400+
401+
RCT_EXPORT_METHOD(trackInAppClick : (NSString *)messageId location : (
402+
NSNumber *)location clickedUrl : (NSString *)clickedUrl) {
403+
[_swiftAPI trackInAppClick:messageId location:location clickedUrl:clickedUrl];
404+
}
405+
406+
RCT_EXPORT_METHOD(trackInAppClose : (NSString *)messageId location : (
407+
NSNumber *)location source : (NSNumber *)source clickedUrl : (NSString *)
408+
clickedUrl) {
409+
[_swiftAPI trackInAppClose:messageId
410+
location:location
411+
source:source
412+
clickedUrl:clickedUrl];
413+
}
414+
415+
RCT_EXPORT_METHOD(inAppConsume : (NSString *)messageId location : (NSNumber *)
416+
location source : (NSNumber *)source) {
417+
[_swiftAPI inAppConsume:messageId location:location source:source];
418+
}
419+
420+
RCT_EXPORT_METHOD(updateCart : (NSArray *)items) {
421+
[_swiftAPI updateCart:items];
422+
}
423+
424+
RCT_EXPORT_METHOD(trackPurchase : (NSNumber *)total items : (NSArray *)
425+
items dataFields : (NSDictionary *)dataFields) {
426+
[_swiftAPI trackPurchase:total items:items dataFields:dataFields];
427+
}
428+
429+
RCT_EXPORT_METHOD(updateUser : (NSDictionary *)dataFields mergeNestedObjects : (
430+
BOOL)mergeNestedObjects) {
431+
[_swiftAPI updateUser:dataFields mergeNestedObjects:mergeNestedObjects];
432+
}
433+
RCT_EXPORT_METHOD(updateEmail : (NSString *)email authToken : (NSString *)
434+
authToken) {
435+
[_swiftAPI updateEmail:email authToken:authToken];
436+
}
437+
438+
RCT_EXPORT_METHOD(getAttributionInfo : (RCTPromiseResolveBlock)
439+
resolve reject : (RCTPromiseRejectBlock)reject) {
440+
[_swiftAPI getAttributionInfo:resolve rejecter:reject];
441+
}
442+
443+
RCT_EXPORT_METHOD(setAttributionInfo : (NSDictionary *)attributionInfo) {
444+
[_swiftAPI setAttributionInfo:attributionInfo];
445+
}
446+
447+
RCT_EXPORT_METHOD(disableDeviceForCurrentUser) {
448+
[_swiftAPI disableDeviceForCurrentUser];
449+
}
450+
451+
RCT_EXPORT_METHOD(getLastPushPayload : (RCTPromiseResolveBlock)
452+
resolve reject : (RCTPromiseRejectBlock)reject) {
453+
[_swiftAPI getLastPushPayload:resolve rejecter:reject];
454+
}
455+
456+
RCT_EXPORT_METHOD(getHtmlInAppContentForMessage : (NSString *)
457+
messageId resolve : (RCTPromiseResolveBlock)
458+
resolve reject : (RCTPromiseRejectBlock)reject) {
459+
[_swiftAPI getHtmlInAppContentForMessage:messageId
460+
resolver:resolve
461+
rejecter:reject];
462+
}
463+
464+
RCT_EXPORT_METHOD(handleAppLink : (NSString *)appLink resolve : (
465+
RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
466+
[_swiftAPI handleAppLink:appLink resolver:resolve rejecter:reject];
467+
}
468+
469+
RCT_EXPORT_METHOD(
470+
updateSubscriptions : (NSArray *)emailListIds unsubscribedChannelIds : (
471+
NSArray *)
472+
unsubscribedChannelIds unsubscribedMessageTypeIds : (NSArray *)
473+
unsubscribedMessageTypeIds subscribedMessageTypeIds : (NSArray *)
474+
subscribedMessageTypeIds campaignId : (NSNumber *)
475+
campaignId templateId : (NSNumber *)templateId) {
476+
[_swiftAPI updateSubscriptions:emailListIds
477+
unsubscribedChannelIds:unsubscribedChannelIds
478+
unsubscribedMessageTypeIds:unsubscribedMessageTypeIds
479+
subscribedMessageTypeIds:subscribedMessageTypeIds
480+
campaignId:campaignId
481+
templateId:templateId];
482+
}
483+
484+
RCT_EXPORT_METHOD(startSession : (NSArray *)visibleRows) {
485+
[_swiftAPI startSession:visibleRows];
486+
}
487+
488+
RCT_EXPORT_METHOD(endSession) { [_swiftAPI endSession]; }
489+
490+
RCT_EXPORT_METHOD(updateVisibleRows : (NSArray *)visibleRows) {
491+
[_swiftAPI updateVisibleRows:visibleRows];
492+
}
493+
494+
RCT_EXPORT_METHOD(passAlongAuthToken : (NSString *)authToken) {
495+
[_swiftAPI passAlongAuthToken:authToken];
496+
}
497+
498+
#endif
499+
275500
@end

0 commit comments

Comments
 (0)