()
| 23 | }`; |
| 24 | |
| 25 | export 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 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…