Skip to content

[MOB-11175] make-rn-sdk-compatible-with-expo #629

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Apr 10, 2025
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 30 additions & 29 deletions src/core/classes/Iterable.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Linking, NativeEventEmitter, Platform } from 'react-native';
import { Linking, NativeEventEmitter, NativeModules, Platform } from 'react-native';

import { buildInfo } from '../../itblBuildInfo';

Expand All @@ -18,8 +18,8 @@ import { IterableAuthResponse } from './IterableAuthResponse';
import type { IterableCommerceItem } from './IterableCommerceItem';
import { IterableConfig } from './IterableConfig';
import { IterableLogger } from './IterableLogger';
import { RNIterableAPI } from './RNIterableAPI';

const RNIterableAPI = NativeModules.RNIterableAPI;
const RNEventEmitter = new NativeEventEmitter(RNIterableAPI);

/* eslint-disable tsdoc/syntax */
Expand Down Expand Up @@ -96,9 +96,10 @@ export class Iterable {

Iterable.logger = new IterableLogger(Iterable.savedConfig);

Iterable.logger.log('initialize: ' + apiKey);
Iterable?.logger?.log('initialize: ' + apiKey);

this.setupEventHandlers();

const version = this.getVersionFromPackageJson();

return RNIterableAPI.initializeWithApiKey(apiKey, config.toDict(), version);
Expand All @@ -119,7 +120,7 @@ export class Iterable {

Iterable.logger = new IterableLogger(Iterable.savedConfig);

Iterable.logger.log('initialize2: ' + apiKey);
Iterable?.logger?.log('initialize2: ' + apiKey);

this.setupEventHandlers();
const version = this.getVersionFromPackageJson();
Expand Down Expand Up @@ -182,7 +183,7 @@ export class Iterable {
* ```
*/
static setEmail(email?: string | null, authToken?: string | null) {
Iterable.logger.log('setEmail: ' + email);
Iterable?.logger?.log('setEmail: ' + email);

RNIterableAPI.setEmail(email, authToken);
}
Expand All @@ -198,7 +199,7 @@ export class Iterable {
* ```
*/
static getEmail(): Promise<string | undefined> {
Iterable.logger.log('getEmail');
Iterable?.logger?.log('getEmail');

return RNIterableAPI.getEmail();
}
Expand Down Expand Up @@ -247,7 +248,7 @@ export class Iterable {
* taken
*/
static setUserId(userId?: string | null, authToken?: string | null) {
Iterable.logger.log('setUserId: ' + userId);
Iterable?.logger?.log('setUserId: ' + userId);

RNIterableAPI.setUserId(userId, authToken);
}
Expand All @@ -263,7 +264,7 @@ export class Iterable {
* ```
*/
static getUserId(): Promise<string | undefined> {
Iterable.logger.log('getUserId');
Iterable?.logger?.log('getUserId');

return RNIterableAPI.getUserId();
}
Expand All @@ -277,7 +278,7 @@ export class Iterable {
* ```
*/
static disableDeviceForCurrentUser() {
Iterable.logger.log('disableDeviceForCurrentUser');
Iterable?.logger?.log('disableDeviceForCurrentUser');

RNIterableAPI.disableDeviceForCurrentUser();
}
Expand All @@ -294,7 +295,7 @@ export class Iterable {
* ```
*/
static getLastPushPayload(): Promise<unknown> {
Iterable.logger.log('getLastPushPayload');
Iterable?.logger?.log('getLastPushPayload');

return RNIterableAPI.getLastPushPayload();
}
Expand Down Expand Up @@ -322,7 +323,7 @@ export class Iterable {
* ```
*/
static getAttributionInfo(): Promise<IterableAttributionInfo | undefined> {
Iterable.logger.log('getAttributionInfo');
Iterable?.logger?.log('getAttributionInfo');

return RNIterableAPI.getAttributionInfo().then(
(dict?: IterableAttributionInfo) => {
Expand Down Expand Up @@ -364,7 +365,7 @@ export class Iterable {
* ```
*/
static setAttributionInfo(attributionInfo?: IterableAttributionInfo) {
Iterable.logger.log('setAttributionInfo');
Iterable?.logger?.log('setAttributionInfo');

RNIterableAPI.setAttributionInfo(attributionInfo);
}
Expand Down Expand Up @@ -405,7 +406,7 @@ export class Iterable {
appAlreadyRunning: boolean,
dataFields?: unknown
) {
Iterable.logger.log('trackPushOpenWithCampaignId');
Iterable?.logger?.log('trackPushOpenWithCampaignId');

RNIterableAPI.trackPushOpenWithCampaignId(
campaignId,
Expand Down Expand Up @@ -443,7 +444,7 @@ export class Iterable {
* ```
*/
static updateCart(items: IterableCommerceItem[]) {
Iterable.logger.log('updateCart');
Iterable?.logger?.log('updateCart');

RNIterableAPI.updateCart(items);
}
Expand All @@ -460,7 +461,7 @@ export class Iterable {
*/
static wakeApp() {
if (Platform.OS === 'android') {
Iterable.logger.log('Attempting to wake the app');
Iterable?.logger?.log('Attempting to wake the app');

RNIterableAPI.wakeApp();
}
Expand Down Expand Up @@ -495,7 +496,7 @@ export class Iterable {
items: IterableCommerceItem[],
dataFields?: unknown
) {
Iterable.logger.log('trackPurchase');
Iterable?.logger?.log('trackPurchase');

RNIterableAPI.trackPurchase(total, items, dataFields);
}
Expand Down Expand Up @@ -523,7 +524,7 @@ export class Iterable {
message: IterableInAppMessage,
location: IterableInAppLocation
) {
Iterable.logger.log('trackInAppOpen');
Iterable?.logger?.log('trackInAppOpen');

RNIterableAPI.trackInAppOpen(message.messageId, location);
}
Expand Down Expand Up @@ -554,7 +555,7 @@ export class Iterable {
location: IterableInAppLocation,
clickedUrl: string
) {
Iterable.logger.log('trackInAppClick');
Iterable?.logger?.log('trackInAppClick');

RNIterableAPI.trackInAppClick(message.messageId, location, clickedUrl);
}
Expand Down Expand Up @@ -587,7 +588,7 @@ export class Iterable {
source: IterableInAppCloseSource,
clickedUrl?: string
) {
Iterable.logger.log('trackInAppClose');
Iterable?.logger?.log('trackInAppClose');

RNIterableAPI.trackInAppClose(
message.messageId,
Expand Down Expand Up @@ -638,7 +639,7 @@ export class Iterable {
location: IterableInAppLocation,
source: IterableInAppDeleteSource
) {
Iterable.logger.log('inAppConsume');
Iterable?.logger?.log('inAppConsume');

RNIterableAPI.inAppConsume(message.messageId, location, source);
}
Expand All @@ -664,7 +665,7 @@ export class Iterable {
* ```
*/
static trackEvent(name: string, dataFields?: unknown) {
Iterable.logger.log('trackEvent');
Iterable?.logger?.log('trackEvent');

RNIterableAPI.trackEvent(name, dataFields);
}
Expand Down Expand Up @@ -712,7 +713,7 @@ export class Iterable {
dataFields: unknown | undefined,
mergeNestedObjects: boolean
) {
Iterable.logger.log('updateUser');
Iterable?.logger?.log('updateUser');

RNIterableAPI.updateUser(dataFields, mergeNestedObjects);
}
Expand All @@ -735,7 +736,7 @@ export class Iterable {
* ```
*/
static updateEmail(email: string, authToken?: string) {
Iterable.logger.log('updateEmail');
Iterable?.logger?.log('updateEmail');

RNIterableAPI.updateEmail(email, authToken);
}
Expand Down Expand Up @@ -819,7 +820,7 @@ export class Iterable {
*/
/* eslint-enable tsdoc/syntax */
static handleAppLink(link: string): Promise<boolean> {
Iterable.logger.log('handleAppLink');
Iterable?.logger?.log('handleAppLink');

return RNIterableAPI.handleAppLink(link);
}
Expand Down Expand Up @@ -866,7 +867,7 @@ export class Iterable {
campaignId: number,
templateId: number
) {
Iterable.logger.log('updateSubscriptions');
Iterable?.logger?.log('updateSubscriptions');

RNIterableAPI.updateSubscriptions(
emailListIds,
Expand Down Expand Up @@ -976,19 +977,19 @@ export class Iterable {
(promiseResult as IterableAuthResponse).failureCallback?.();
}
} else {
Iterable.logger.log('No callback received from native layer');
Iterable?.logger?.log('No callback received from native layer');
}
}, 1000);
} else if (typeof promiseResult === typeof '') {
//If promise only returns string
RNIterableAPI.passAlongAuthToken(promiseResult as string);
} else {
Iterable.logger.log(
Iterable?.logger?.log(
'Unexpected promise returned. Auth token expects promise of String or AuthResponse type.'
);
}
})
.catch((e) => Iterable.logger.log(e));
.catch((e) => Iterable?.logger?.log(e));
});

RNEventEmitter.addListener(
Expand Down Expand Up @@ -1016,7 +1017,7 @@ export class Iterable {
}
})
.catch((reason) => {
Iterable.logger.log('could not open url: ' + reason);
Iterable?.logger?.log('could not open url: ' + reason);
});
}
}
Expand Down
26 changes: 0 additions & 26 deletions src/core/classes/RNIterableAPI.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/core/classes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@ export * from './IterableConfig';
export * from './IterableEdgeInsets';
export * from './IterableLogger';
export * from './IterableUtil';
export * from './RNIterableAPI';
20 changes: 12 additions & 8 deletions src/inApp/classes/IterableInAppManager.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import { Iterable, RNIterableAPI } from '../../core';
import { NativeModules } from 'react-native';

import { Iterable } from '../../core';
import type {
IterableInAppDeleteSource,
IterableInAppLocation,
} from '../enums';
import { IterableHtmlInAppContent } from './IterableHtmlInAppContent';
import { IterableInAppMessage } from './IterableInAppMessage';

const RNIterableAPI = NativeModules.RNIterableAPI;

/**
* Manages in-app messages for the current user.
*
Expand All @@ -32,7 +36,7 @@ export class IterableInAppManager {
* @returns A Promise that resolves to an array of in-app messages.
*/
getMessages(): Promise<IterableInAppMessage[]> {
Iterable.logger.log('InAppManager.getMessages');
Iterable?.logger?.log('InAppManager.getMessages');

return RNIterableAPI.getInAppMessages();
}
Expand All @@ -55,7 +59,7 @@ export class IterableInAppManager {
* @returns A Promise that resolves to an array of messages marked as `saveToInbox`.
*/
getInboxMessages(): Promise<IterableInAppMessage[]> {
Iterable.logger.log('InAppManager.getInboxMessages');
Iterable?.logger?.log('InAppManager.getInboxMessages');

return RNIterableAPI.getInboxMessages();
}
Expand All @@ -82,7 +86,7 @@ export class IterableInAppManager {
message: IterableInAppMessage,
consume: boolean
): Promise<string | undefined> {
Iterable.logger.log('InAppManager.show');
Iterable?.logger?.log('InAppManager.show');

return RNIterableAPI.showMessage(message.messageId, consume);
}
Expand Down Expand Up @@ -110,7 +114,7 @@ export class IterableInAppManager {
location: IterableInAppLocation,
source: IterableInAppDeleteSource
): void {
Iterable.logger.log('InAppManager.remove');
Iterable?.logger?.log('InAppManager.remove');

return RNIterableAPI.removeMessage(message.messageId, location, source);
}
Expand All @@ -127,7 +131,7 @@ export class IterableInAppManager {
* ```
*/
setReadForMessage(message: IterableInAppMessage, read: boolean) {
Iterable.logger.log('InAppManager.setRead');
Iterable?.logger?.log('InAppManager.setRead');

RNIterableAPI.setReadForMessage(message.messageId, read);
}
Expand All @@ -147,7 +151,7 @@ export class IterableInAppManager {
getHtmlContentForMessage(
message: IterableInAppMessage
): Promise<IterableHtmlInAppContent> {
Iterable.logger.log('InAppManager.getHtmlContentForMessage');
Iterable?.logger?.log('InAppManager.getHtmlContentForMessage');

return RNIterableAPI.getHtmlInAppContentForMessage(message.messageId);
}
Expand All @@ -167,7 +171,7 @@ export class IterableInAppManager {
* ```
*/
setAutoDisplayPaused(paused: boolean) {
Iterable.logger.log('InAppManager.setAutoDisplayPaused');
Iterable?.logger?.log('InAppManager.setAutoDisplayPaused');

RNIterableAPI.setAutoDisplayPaused(paused);
}
Expand Down
Loading