Skip to content

Commit 383e308

Browse files
committed
feat: refactor embedded click handling and introduce action prefix utilities
1 parent f9b22b7 commit 383e308

16 files changed

Lines changed: 122 additions & 103 deletions

File tree

android/src/main/java/com/iterable/reactnative/RNIterableAPIModuleImpl.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.iterable.iterableapi.IterableEmbeddedManager;
3333
import com.iterable.iterableapi.IterableEmbeddedMessage;
3434
import com.iterable.iterableapi.IterableEmbeddedSession;
35+
import com.iterable.iterableapi.IterableEmbeddedUpdateHandler;
3536
import com.iterable.iterableapi.IterableHelper;
3637
import com.iterable.iterableapi.IterableInAppCloseAction;
3738
import com.iterable.iterableapi.IterableInAppHandler;
@@ -43,8 +44,6 @@
4344
import com.iterable.iterableapi.IterableUrlHandler;
4445
import com.iterable.iterableapi.RNIterableInternal;
4546

46-
import com.iterable.iterableapi.IterableEmbeddedUpdateHandler;
47-
4847
import org.json.JSONArray;
4948
import org.json.JSONException;
5049
import org.json.JSONObject;
@@ -730,15 +729,6 @@ public void pauseEmbeddedImpression(String messageId) {
730729
IterableApi.getInstance().getEmbeddedManager().getEmbeddedSessionManager().pauseImpression(messageId);
731730
}
732731

733-
public void handleEmbeddedClick(ReadableMap messageMap, String buttonId, String clickedUrl) {
734-
IterableEmbeddedMessage message = Serialization.embeddedMessageFromReadableMap(messageMap);
735-
if (message != null) {
736-
IterableApi.getInstance().getEmbeddedManager().handleEmbeddedClick(message, buttonId, clickedUrl);
737-
} else {
738-
IterableLogger.e(TAG, "Failed to convert message map to IterableEmbeddedMessage");
739-
}
740-
}
741-
742732
public void trackEmbeddedClick(ReadableMap messageMap, String buttonId, String clickedUrl) {
743733
IterableLogger.d(TAG, "trackEmbeddedClick: buttonId: " + buttonId + " clickedUrl: " + clickedUrl);
744734
IterableEmbeddedMessage message = Serialization.embeddedMessageFromReadableMap(messageMap);

android/src/newarch/java/com/RNIterableAPIModule.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,6 @@ public void pauseEmbeddedImpression(String messageId) {
260260
moduleImpl.pauseEmbeddedImpression(messageId);
261261
}
262262

263-
@Override
264-
public void handleEmbeddedClick(ReadableMap message, String buttonId, String clickedUrl) {
265-
moduleImpl.handleEmbeddedClick(message, buttonId, clickedUrl);
266-
}
267-
268263
@Override
269264
public void trackEmbeddedClick(ReadableMap message, String buttonId, String clickedUrl) {
270265
moduleImpl.trackEmbeddedClick(message, buttonId, clickedUrl);

android/src/oldarch/java/com/RNIterableAPIModule.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.facebook.react.bridge.ReadableMap;
1212
import com.iterable.iterableapi.IterableEmbeddedMessage;
1313
import com.iterable.iterableapi.IterableEmbeddedManager;
14-
1514
import com.iterable.iterableapi.IterableEmbeddedUpdateHandler;
1615

1716

@@ -268,11 +267,6 @@ public void pauseEmbeddedImpression(String messageId) {
268267
moduleImpl.pauseEmbeddedImpression(messageId);
269268
}
270269

271-
@ReactMethod
272-
public void handleEmbeddedClick(ReadableMap message, String buttonId, String clickedUrl) {
273-
moduleImpl.handleEmbeddedClick(message, buttonId, clickedUrl);
274-
}
275-
276270
@ReactMethod
277271
public void trackEmbeddedClick(ReadableMap message, String buttonId, String clickedUrl) {
278272
moduleImpl.trackEmbeddedClick(message, buttonId, clickedUrl);

src/api/NativeRNIterableAPI.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,6 @@ export interface Spec extends TurboModule {
165165

166166
pauseEmbeddedImpression(messageId: string): void;
167167

168-
handleEmbeddedClick(
169-
message: EmbeddedMessage,
170-
buttonId: string | null,
171-
clickedUrl: string | null
172-
): void;
173-
174168
trackEmbeddedClick(
175169
message: EmbeddedMessage,
176170
buttonId: string | null,

src/core/classes/Iterable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ export class Iterable {
207207
Iterable.logger = logger;
208208
Iterable.inAppManager = new IterableInAppManager(logger);
209209
Iterable.authManager = new IterableAuthManager(logger);
210-
Iterable.embeddedManager = new IterableEmbeddedManager(logger);
210+
Iterable.embeddedManager = new IterableEmbeddedManager(logger, config);
211211
IterableApi.setLogger(logger);
212212

213213
this.setupEventHandlers();

src/core/classes/IterableApi.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -576,20 +576,6 @@ export class IterableApi {
576576
return RNIterableAPI.pauseEmbeddedImpression(messageId);
577577
}
578578

579-
static handleEmbeddedClick(
580-
message: IterableEmbeddedMessage,
581-
buttonId: string | null,
582-
clickedUrl: string | null
583-
) {
584-
IterableApi.logger.log(
585-
'handleEmbeddedClick: ',
586-
message,
587-
buttonId,
588-
clickedUrl
589-
);
590-
return RNIterableAPI.handleEmbeddedClick(message, buttonId, clickedUrl);
591-
}
592-
593579
// ---- End EMBEDDED ---- //
594580

595581
// ====================================================== //

src/core/constants/defaults.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export const defaultLogger = new IterableLogger(defaultConfig);
99
export const defaultInAppManager = new IterableInAppManager(defaultLogger);
1010
export const defaultAuthManager = new IterableAuthManager(defaultLogger);
1111
export const defaultEmbeddedManager = new IterableEmbeddedManager(
12-
defaultLogger
12+
defaultLogger,
13+
defaultConfig
1314
);
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export enum IterableCustomActionPrefix {
2+
Action = 'action://',
3+
Itbl = 'itbl://',
4+
}

src/core/utils/getActionPrefix.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { IterableCustomActionPrefix } from '../enums/IterableCustomActionPrefix';
2+
3+
export const getActionPrefix = (
4+
str?: string | null
5+
): IterableCustomActionPrefix | null => {
6+
if (!str) return null;
7+
if (str.startsWith(IterableCustomActionPrefix.Action)) {
8+
return IterableCustomActionPrefix.Action;
9+
}
10+
if (str.startsWith(IterableCustomActionPrefix.Itbl)) {
11+
return IterableCustomActionPrefix.Itbl;
12+
}
13+
return null;
14+
};

src/core/utils/isIterableAction.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
import { IterableCustomActionPrefix } from '../enums/IterableCustomActionPrefix';
2+
13
export const isIterableAction = (str: string = '') =>
2-
str.slice(0, 9) === 'action://';
4+
str.startsWith(IterableCustomActionPrefix.Action) ||
5+
str.startsWith(IterableCustomActionPrefix.Itbl);

0 commit comments

Comments
 (0)