Skip to content

Commit b0da53d

Browse files
committed
fix: return all messages for getEmbeddedMessages when no placement given
1 parent 39e73ab commit b0da53d

File tree

2 files changed

+26
-31
lines changed

2 files changed

+26
-31
lines changed

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -755,12 +755,16 @@ public void getEmbeddedMessages(@Nullable ReadableArray placementIds, Promise pr
755755
List<IterableEmbeddedMessage> allMessages = new ArrayList<>();
756756

757757
if (placementIds == null || placementIds.size() == 0) {
758-
// If no placement IDs provided, we need to get messages for all possible placements
759-
// Since the Android SDK requires a placement ID, we'll use 0 as a default
760-
// This might need to be adjusted based on the actual SDK behavior
761-
List<IterableEmbeddedMessage> messages = IterableApi.getInstance().getEmbeddedManager().getMessages(0L);
762-
if (messages != null) {
763-
allMessages.addAll(messages);
758+
// If no placement IDs provided, get messages from all placements
759+
// Get all available placement IDs and fetch messages for each
760+
List<Long> allPlacementIds = IterableApi.getInstance().getEmbeddedManager().getPlacementIds();
761+
IterableLogger.d(TAG, "Getting messages for all placement IDs: " + allPlacementIds);
762+
763+
for (Long placementId : allPlacementIds) {
764+
List<IterableEmbeddedMessage> messages = IterableApi.getInstance().getEmbeddedManager().getMessages(placementId);
765+
if (messages != null) {
766+
allMessages.addAll(messages);
767+
}
764768
}
765769
} else {
766770
// Convert ReadableArray to individual placement IDs and get messages for each

example/src/components/Embedded/Embedded.tsx

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { ScrollView, Text, TextInput, TouchableOpacity, View } from 'react-native';
1+
import {
2+
ScrollView,
3+
Text,
4+
TextInput,
5+
TouchableOpacity,
6+
View,
7+
} from 'react-native';
28
import { useCallback, useState } from 'react';
39
import {
410
Iterable,
@@ -44,19 +50,15 @@ export const Embedded = () => {
4450
}, []);
4551

4652
const getEmbeddedMessages = useCallback(() => {
47-
// Don't fetch if no IDs
48-
if (parsedPlacementIds.length === 0) {
49-
console.log('No placement IDs entered, button should be disabled');
50-
return;
51-
}
52-
5353
console.log('Fetching messages for placement IDs:', idsToFetch);
5454

55-
Iterable.embeddedManager.getMessages(idsToFetch).then((messages: IterableEmbeddedMessage[]) => {
55+
Iterable.embeddedManager
56+
.getMessages(idsToFetch)
57+
.then((messages: IterableEmbeddedMessage[]) => {
5658
setEmbeddedMessages(messages);
5759
console.log(messages);
5860
});
59-
}, [idsToFetch, parsedPlacementIds.length]);
61+
}, [idsToFetch]);
6062

6163
const startEmbeddedImpression = useCallback(
6264
(message: IterableEmbeddedMessage) => {
@@ -96,7 +98,8 @@ export const Embedded = () => {
9698
{!Iterable.embeddedManager.isEnabled && (
9799
<View style={styles.warningContainer}>
98100
<Text style={styles.warningText}>
99-
⚠️ Embedded messaging is disabled. Please enable it in your Iterable config.
101+
⚠️ Embedded messaging is disabled. Please enable it in your Iterable
102+
config.
100103
</Text>
101104
</View>
102105
)}
@@ -114,9 +117,7 @@ export const Embedded = () => {
114117
<Text style={styles.buttonText}>End session</Text>
115118
</TouchableOpacity>
116119
<View style={styles.inputContainer}>
117-
<Text style={styles.text}>
118-
Placement IDs (comma-separated):
119-
</Text>
120+
<Text style={styles.text}>Placement IDs (comma-separated):</Text>
120121
<TextInput
121122
style={styles.textInput}
122123
placeholder="e.g., 1, 2, 3"
@@ -125,18 +126,8 @@ export const Embedded = () => {
125126
onChangeText={setPlacementIdsInput}
126127
keyboardType="numbers-and-punctuation"
127128
/>
128-
<TouchableOpacity
129-
style={[
130-
styles.button,
131-
parsedPlacementIds.length === 0 && styles.buttonDisabled
132-
]}
133-
onPress={getEmbeddedMessages}
134-
disabled={parsedPlacementIds.length === 0}
135-
>
136-
<Text style={[
137-
styles.buttonText,
138-
parsedPlacementIds.length === 0 && styles.buttonTextDisabled
139-
]}>
129+
<TouchableOpacity style={styles.button} onPress={getEmbeddedMessages}>
130+
<Text style={styles.buttonText}>
140131
Get messages for placement ids
141132
</Text>
142133
</TouchableOpacity>

0 commit comments

Comments
 (0)