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