MCPcopy Create free account
hub / github.com/Iterable/react-native-sdk / Embedded

Function Embedded

example/src/components/Embedded/Embedded.tsx:25–256  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

23}`;
24
25export const Embedded = () => {
26 const [placementIdsInput, setPlacementIdsInput] = useState<string>('');
27 const [embeddedMessages, setEmbeddedMessages] = useState<
28 IterableEmbeddedMessage[]
29 >([]);
30 const [selectedViewType, setSelectedViewType] =
31 useState<IterableEmbeddedViewType>(IterableEmbeddedViewType.Banner);
32 const [viewConfig, setViewConfig] =
33 useState<IterableEmbeddedViewConfig | null>(null);
34 const [configEditorVisible, setConfigEditorVisible] = useState(false);
35 const [configJson, setConfigJson] = useState(DEFAULT_CONFIG_JSON);
36
37 // Parse placement IDs from input
38 const parsedPlacementIds = placementIdsInput
39 .split(',')
40 .map((id) => id.trim())
41 .filter((id) => id !== '')
42 .map((id) => parseInt(id, 10))
43 .filter((id) => !isNaN(id));
44
45 const idsToFetch = parsedPlacementIds.length > 0 ? parsedPlacementIds : null;
46
47 const syncEmbeddedMessages = useCallback(() => {
48 Iterable.embeddedManager.syncMessages();
49 }, []);
50
51 const startEmbeddedSession = useCallback(() => {
52 Iterable.embeddedManager.startSession();
53 }, []);
54
55 const endEmbeddedSession = useCallback(() => {
56 Iterable.embeddedManager.endSession();
57 }, []);
58
59 const getEmbeddedMessages = useCallback(() => {
60 Iterable.embeddedManager
61 .getMessages(idsToFetch)
62 .then((messages: IterableEmbeddedMessage[]) => {
63 setEmbeddedMessages(messages);
64 console.log(messages);
65 });
66 }, [idsToFetch]);
67
68 const openConfigEditor = useCallback(() => {
69 setConfigJson(
70 viewConfig ? JSON.stringify(viewConfig, null, 2) : DEFAULT_CONFIG_JSON
71 );
72 setConfigEditorVisible(true);
73 }, [viewConfig]);
74
75 const applyConfig = useCallback(() => {
76 try {
77 const parsed = JSON.parse(configJson) as IterableEmbeddedViewConfig;
78 setViewConfig(parsed);
79 setConfigEditorVisible(false);
80 } catch {
81 Alert.alert('Error', 'Invalid JSON');
82 }

Callers

nothing calls this directly

Calls 5

syncMessagesMethod · 0.80
logMethod · 0.80
startSessionMethod · 0.65
endSessionMethod · 0.65
getMessagesMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…