11import { Text , TouchableOpacity , View } from 'react-native' ;
22import { useCallback , useState } from 'react' ;
3- import { Iterable } from '@iterable/react-native-sdk' ;
3+ import {
4+ Iterable ,
5+ type IterableEmbeddedMessage ,
6+ } from '@iterable/react-native-sdk' ;
47
58import styles from './Embedded.styles' ;
69
710export const Embedded = ( ) => {
811 const [ placementIds , setPlacementIds ] = useState < number [ ] > ( [ ] ) ;
12+ const [ embeddedMessages , setEmbeddedMessages ] = useState <
13+ IterableEmbeddedMessage [ ]
14+ > ( [ ] ) ;
915
1016 const syncEmbeddedMessages = useCallback ( ( ) => {
1117 Iterable . embeddedManager . syncMessages ( ) ;
1218 } , [ ] ) ;
1319
1420 const getPlacementIds = useCallback ( ( ) => {
15- Iterable . embeddedManager . getPlacementIds ( ) . then ( ( ids : unknown ) => {
21+ return Iterable . embeddedManager . getPlacementIds ( ) . then ( ( ids : unknown ) => {
1622 console . log ( ids ) ;
1723 setPlacementIds ( ids as number [ ] ) ;
24+ return ids ;
1825 } ) ;
1926 } , [ ] ) ;
2027
@@ -32,31 +39,57 @@ export const Embedded = () => {
3239 Iterable . embeddedManager . endSession ( ) ;
3340 } , [ ] ) ;
3441
42+ const getEmbeddedMessages = useCallback ( ( ) => {
43+ getPlacementIds ( )
44+ . then ( ( ids : number [ ] ) => Iterable . embeddedManager . getMessages ( ids ) )
45+ . then ( ( messages : IterableEmbeddedMessage [ ] ) => {
46+ setEmbeddedMessages ( messages ) ;
47+ console . log ( messages ) ;
48+ } ) ;
49+ } , [ getPlacementIds ] ) ;
50+
3551 return (
3652 < View style = { styles . container } >
3753 < Text style = { styles . text } > EMBEDDED</ Text >
38- < Text style = { styles . text } >
39- Does embedded class exist? { Iterable . embeddedManager ? 'Yes' : 'No' }
40- </ Text >
41- < Text style = { styles . text } >
42- Is embedded manager enabled?
43- { Iterable . embeddedManager . isEnabled ? 'Yes' : 'No' }
44- </ Text >
45- < Text style = { styles . text } >
46- Placement ids: [{ placementIds . join ( ', ' ) } ]
47- </ Text >
48- < TouchableOpacity style = { styles . button } onPress = { syncEmbeddedMessages } >
49- < Text style = { styles . buttonText } > Sync embedded messages</ Text >
50- </ TouchableOpacity >
51- < TouchableOpacity style = { styles . button } onPress = { getPlacementIds } >
52- < Text style = { styles . buttonText } > Get placement ids</ Text >
53- </ TouchableOpacity >
54- < TouchableOpacity style = { styles . button } onPress = { startEmbeddedSession } >
55- < Text style = { styles . buttonText } > Start embedded session</ Text >
56- </ TouchableOpacity >
57- < TouchableOpacity style = { styles . button } onPress = { endEmbeddedSession } >
58- < Text style = { styles . buttonText } > End embedded session</ Text >
59- </ TouchableOpacity >
54+ < View style = { styles . utilitySection } >
55+ < Text style = { styles . text } >
56+ Does embedded class exist? { Iterable . embeddedManager ? 'Yes' : 'No' }
57+ </ Text >
58+ < Text style = { styles . text } >
59+ Is embedded manager enabled?
60+ { Iterable . embeddedManager . isEnabled ? 'Yes' : 'No' }
61+ </ Text >
62+ < Text style = { styles . text } >
63+ Placement ids: [{ placementIds . join ( ', ' ) } ]
64+ </ Text >
65+ < TouchableOpacity style = { styles . button } onPress = { syncEmbeddedMessages } >
66+ < Text style = { styles . buttonText } > Sync embedded messages</ Text >
67+ </ TouchableOpacity >
68+ < TouchableOpacity style = { styles . button } onPress = { getPlacementIds } >
69+ < Text style = { styles . buttonText } > Get placement ids</ Text >
70+ </ TouchableOpacity >
71+ < TouchableOpacity style = { styles . button } onPress = { startEmbeddedSession } >
72+ < Text style = { styles . buttonText } > Start embedded session</ Text >
73+ </ TouchableOpacity >
74+ < TouchableOpacity style = { styles . button } onPress = { endEmbeddedSession } >
75+ < Text style = { styles . buttonText } > End embedded session</ Text >
76+ </ TouchableOpacity >
77+ < TouchableOpacity style = { styles . button } onPress = { getEmbeddedMessages } >
78+ < Text style = { styles . buttonText } > Get embedded messages</ Text >
79+ </ TouchableOpacity >
80+ </ View >
81+ < View style = { styles . hr } />
82+ < View style = { styles . embeddedSection } >
83+ { embeddedMessages . map ( ( message ) => (
84+ < View key = { message . metadata . messageId } >
85+ < Text > Embedded message</ Text >
86+ < Text > metadata.messageId: { message . metadata . messageId } </ Text >
87+ < Text > metadata.placementId: { message . metadata . placementId } </ Text >
88+ < Text > elements.title: { message . elements ?. title } </ Text >
89+ < Text > elements.body: { message . elements ?. body } </ Text >
90+ </ View >
91+ ) ) }
92+ </ View >
6093 </ View >
6194 ) ;
6295} ;
0 commit comments