Skip to content

Commit 2e43601

Browse files
authored
Merge pull request #523 from adobe/staging
Staging to Main for Messaging 7.1.1 release
2 parents 3182032 + 655853f commit 2e43601

File tree

4 files changed

+51
-9
lines changed

4 files changed

+51
-9
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,6 @@ out/
149149
# Ignore VSCode settings
150150
.vscode/
151151
.vscode/settings.json
152+
153+
# ignore ds store
154+
.DS_Store

apps/AEPSampleAppNewArchEnabled/app/_layout.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { Drawer } from 'expo-router/drawer';
66

77
import { useColorScheme } from '@/hooks/useColorScheme';
88
import { MobileCore , LogLevel} from '@adobe/react-native-aepcore';
9+
import { Messaging } from '@adobe/react-native-aepmessaging';
910
import { useEffect } from 'react';
1011

1112
// Prevent the splash screen from auto-hiding before asset loading is complete.
@@ -41,6 +42,32 @@ export default function RootLayout() {
4142
MobileCore.initializeWithAppId("YOUR-APP-ID")
4243
.then(() => {
4344
console.log("AEP SDK Initialized");
45+
46+
// // Set up messaging delegate after SDK initialization
47+
// const unsubscribe = Messaging.setMessagingDelegate({
48+
// onDismiss: (message) => {
49+
// console.log('Message dismissed:', message);
50+
// },
51+
// onShow: (message) => {
52+
// console.log('Message shown:', message);
53+
// },
54+
// shouldShowMessage: (message) => {
55+
// console.log('Should show message:', message);
56+
// return true; // Always show messages in sample app
57+
// },
58+
// shouldSaveMessage: (message) => {
59+
// console.log('Should save message:', message);
60+
// return true; // Always save messages in sample app
61+
// },
62+
// urlLoaded: (url, message) => {
63+
// console.log('URL loaded:', url, 'for message:', message);
64+
// },
65+
// });
66+
67+
// console.log("Messaging delegate set up successfully");
68+
69+
// Store unsubscribe function if needed for cleanup
70+
// You could return it from useEffect if you need to clean up on unmount
4471
})
4572
.catch((error) => {
4673
console.error("AEP SDK Initialization error:", error);

packages/messaging/ios/src/RCTAEPMessaging.swift

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -275,25 +275,37 @@ public class RCTAEPMessaging: RCTEventEmitter, MessagingDelegate {
275275
}
276276

277277
public func shouldShowMessage(message: Showable) -> Bool {
278-
if let fullscreenMessage = message as? FullscreenMessage,
279-
let message = fullscreenMessage.parent
280-
{
278+
let fullscreenMessage = message as? FullscreenMessage
279+
let parentMessage = fullscreenMessage?.parent
280+
281+
// If parent message exists, emit it
282+
if let parentMessage = parentMessage {
281283
emitNativeEvent(
282284
name: Constants.SHOULD_SHOW_MESSAGE_EVENT,
283-
body: RCTAEPMessagingDataBridge.transformToMessage(message: message)
285+
body: RCTAEPMessagingDataBridge.transformToMessage(message: parentMessage)
286+
)
287+
} else if let fullscreenMessage = fullscreenMessage {
288+
// Parent is nil but fullscreen message exists - emit empty body for now
289+
emitNativeEvent(
290+
name: Constants.SHOULD_SHOW_MESSAGE_EVENT,
291+
body: [:]
284292
)
285-
semaphore.wait()
293+
} else {
294+
// Both are nil, don't emit anything and return false
295+
return false
296+
}
297+
298+
semaphore.wait()
299+
if let message = parentMessage {
286300
if self.shouldSaveMessage {
287301
self.messageCache[message.id] = message
288302
}
289303

290304
if self.shouldShowMessage {
291305
latestMessage = message
292306
}
293-
294-
return self.shouldShowMessage
295307
}
296-
return false
308+
return self.shouldShowMessage
297309
}
298310

299311
public func urlLoaded(_ url: URL, byMessage message: Showable) {

packages/messaging/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@adobe/react-native-aepmessaging",
3-
"version": "7.1.0",
3+
"version": "7.1.1",
44
"description": "Adobe Experience Platform support for React Native apps.",
55
"homepage": "https://developer.adobe.com/client-sdks/documentation/",
66
"license": "Apache-2.0",

0 commit comments

Comments
 (0)