From 53b7332d6cb47085f601199e3a237c2a3f810dc2 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Thu, 25 Sep 2025 15:17:09 -0700 Subject: [PATCH 01/16] Fix the Rendered fewer hooks than expected error when clicking dismiss Fix the issue, when users clicked the dismiss button on ContentCardView.tsx, the app crashed with React's hooks consistency error. "Rendered fewer hooks than expected. This may be caused by an accidental early return statement" --- .../ContentCardView/ContentCardView.js | 37 ++++++++--------- .../ContentCardView/ContentCardView.js.map | 2 +- .../ContentCardView/ContentCardView.d.ts.map | 2 +- .../ContentCardView/ContentCardView.tsx | 41 +++++++++---------- 4 files changed, 39 insertions(+), 43 deletions(-) diff --git a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js index eb4acd29..66b8096e 100644 --- a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js +++ b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js @@ -39,6 +39,11 @@ export const ContentCardView = ({ ...props }) => { console.log('ContentCardView', template); + + // Early returns for invalid data - must come before any hooks + if (!template.data) return null; + const content = template?.data?.content; + if (!content) return null; const colorScheme = useColorScheme(); const [isVisible, setIsVisible] = useState(true); const isDisplayedRef = useRef(false); @@ -64,16 +69,6 @@ export const ContentCardView = ({ } } }, [template]); - - // Call listener on mount to signal view display (only once to prevent duplicates) - useEffect(() => { - if (!isDisplayedRef.current) { - listener?.('onDisplay', template); - // Track display event using propositionItem - template.track?.(MessagingEdgeEventType.DISPLAY); - isDisplayedRef.current = true; - } - }, [listener, template]); const imageUri = useMemo(() => { if (colorScheme === 'dark' && template.data?.content?.image?.darkUrl) { return template.data.content.image.darkUrl; @@ -81,14 +76,6 @@ export const ContentCardView = ({ return template.data.content.image?.url; }, [colorScheme, template.data?.content?.image?.darkUrl, template.data?.content?.image?.url]); const imageAspectRatio = useAspectRatio(imageUri); - - // If not visible, return null to hide the entire view - if (!isVisible) { - return null; - } - if (!template.data) return null; - const content = template?.data?.content; - if (!content) return null; const styleOverrides = useMemo(() => { switch (cardVariant) { case 'SmallImage': @@ -101,7 +88,19 @@ export const ContentCardView = ({ return null; } }, [_styleOverrides, cardVariant]); - return /*#__PURE__*/React.createElement(Pressable, _extends({ + + // Call listener on mount to signal view display (only once and only when visible) + useEffect(() => { + if (isVisible && !isDisplayedRef.current) { + listener?.('onDisplay', template); + // Track display event using propositionItem + template.track?.(MessagingEdgeEventType.DISPLAY); + isDisplayedRef.current = true; + } + }, [isVisible, listener, template]); + + // Use conditional rendering instead of early return to avoid hooks issues + return !isVisible ? null : /*#__PURE__*/React.createElement(Pressable, _extends({ onPress: onPress, style: state => [styles.card, styleOverrides?.card, typeof style === 'function' ? style(state) : style] }, props), /*#__PURE__*/React.createElement(View, _extends({ diff --git a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map index 7fd8f523..d8ea17b9 100644 --- a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map +++ b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map @@ -1 +1 @@ -{"version":3,"names":["React","useEffect","useCallback","useState","useRef","useMemo","Image","Linking","Pressable","StyleSheet","Text","useColorScheme","View","MessagingEdgeEventType","DismissButton","useTheme","useAspectRatio","Button","ContentCardView","template","listener","variant","styleOverrides","_styleOverrides","style","ContainerProps","ImageContainerProps","ImageProps","ContentContainerProps","TextProps","TitleProps","BodyProps","ButtonContainerProps","ButtonProps","DismissButtonProps","props","console","log","colorScheme","isVisible","setIsVisible","isDisplayedRef","theme","cardVariant","type","onDismiss","track","DISMISS","onPress","INTERACT","data","content","actionUrl","openURL","error","warn","current","DISPLAY","imageUri","image","darkUrl","url","imageAspectRatio","smallImageStyle","largeImageStyle","imageOnlyStyle","createElement","_extends","state","styles","card","smallImageStyles","container","imageContainer","source","uri","aspectRatio","resizeMode","contentContainer","title","color","colors","textPrimary","text","body","buttonContainer","buttons","length","map","button","key","id","textStyle","buttonText","dismissBtn","create","margin","flex","flexDirection","alignItems","borderRadius","backgroundColor","width","paddingVertical","paddingHorizontal","justifyContent","textContent","marginBottom","fontSize","fontWeight","marginRight","lineHeight","flexWrap","paddingTop","gap","marginHorizontal","maxWidth","alignSelf"],"sourceRoot":"../../../../../src","sources":["ui/components/ContentCardView/ContentCardView.tsx"],"mappings":"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","ignoreList":[]} +{"version":3,"names":["React","useEffect","useCallback","useState","useRef","useMemo","Image","Linking","Pressable","StyleSheet","Text","useColorScheme","View","MessagingEdgeEventType","DismissButton","useTheme","useAspectRatio","Button","ContentCardView","template","listener","variant","styleOverrides","_styleOverrides","style","ContainerProps","ImageContainerProps","ImageProps","ContentContainerProps","TextProps","TitleProps","BodyProps","ButtonContainerProps","ButtonProps","DismissButtonProps","props","console","log","data","content","colorScheme","isVisible","setIsVisible","isDisplayedRef","theme","cardVariant","type","onDismiss","track","DISMISS","onPress","INTERACT","actionUrl","openURL","error","warn","imageUri","image","darkUrl","url","imageAspectRatio","smallImageStyle","largeImageStyle","imageOnlyStyle","current","DISPLAY","createElement","_extends","state","styles","card","smallImageStyles","container","imageContainer","source","uri","aspectRatio","resizeMode","contentContainer","title","color","colors","textPrimary","text","body","buttonContainer","buttons","length","map","button","key","id","textStyle","buttonText","dismissBtn","create","margin","flex","flexDirection","alignItems","borderRadius","backgroundColor","width","paddingVertical","paddingHorizontal","justifyContent","textContent","marginBottom","fontSize","fontWeight","marginRight","lineHeight","flexWrap","paddingTop","gap","marginHorizontal","maxWidth","alignSelf"],"sourceRoot":"../../../../../src","sources":["ui/components/ContentCardView/ContentCardView.tsx"],"mappings":"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","ignoreList":[]} diff --git a/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map b/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map index aefaba73..40adffd2 100644 --- a/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map +++ b/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ContentCardView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ContentCardView/ContentCardView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAIL,cAAc,EAKf,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,eAAe,EACtB,WAAW,CAAC,EAAE,GAAG,KACd,IAAI,CAAC;AAEV,MAAM,WAAW,gBACf,SAAQ,cAAc,EACpB,sBAAsB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAuNtD,CAAC"} \ No newline at end of file +{"version":3,"file":"ContentCardView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ContentCardView/ContentCardView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAIL,cAAc,EAKf,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,eAAe,EACtB,WAAW,CAAC,EAAE,GAAG,KACd,IAAI,CAAC;AAEV,MAAM,WAAW,gBACf,SAAQ,cAAc,EACpB,sBAAsB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoNtD,CAAC"} \ No newline at end of file diff --git a/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx b/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx index 3141f344..50e97472 100644 --- a/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx +++ b/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx @@ -80,6 +80,13 @@ export const ContentCardView: React.FC = ({ ...props }) => { console.log('ContentCardView', template); + + // Early returns for invalid data - must come before any hooks + if (!template.data) return null; + + const content = template?.data?.content as any; + if (!content) return null; + const colorScheme = useColorScheme(); const [isVisible, setIsVisible] = useState(true); const isDisplayedRef = useRef(false); @@ -117,16 +124,6 @@ export const ContentCardView: React.FC = ({ } }, [template]); - // Call listener on mount to signal view display (only once to prevent duplicates) - useEffect(() => { - if (!isDisplayedRef.current) { - listener?.('onDisplay', template); - // Track display event using propositionItem - template.track?.(MessagingEdgeEventType.DISPLAY); - isDisplayedRef.current = true; - } - }, [listener, template]); - const imageUri = useMemo(() => { if (colorScheme === 'dark' && template.data?.content?.image?.darkUrl) { return template.data.content.image.darkUrl; @@ -140,17 +137,6 @@ export const ContentCardView: React.FC = ({ const imageAspectRatio = useAspectRatio(imageUri); - // If not visible, return null to hide the entire view - if (!isVisible) { - return null; - } - - if (!template.data) return null; - - const content = template?.data?.content as any; - - if (!content) return null; - const styleOverrides = useMemo< | (SmallImageContentStyle & LargeImageContentStyle & ImageOnlyContentStyle) | null @@ -167,7 +153,18 @@ export const ContentCardView: React.FC = ({ } }, [_styleOverrides, cardVariant]); - return ( + // Call listener on mount to signal view display (only once and only when visible) + useEffect(() => { + if (isVisible && !isDisplayedRef.current) { + listener?.('onDisplay', template); + // Track display event using propositionItem + template.track?.(MessagingEdgeEventType.DISPLAY); + isDisplayedRef.current = true; + } + }, [isVisible, listener, template]); + + // Use conditional rendering instead of early return to avoid hooks issues + return !isVisible ? null : ( [ From 1d0e5c591995ffd9b034f4e1d1393e4cdfe3f34e Mon Sep 17 00:00:00 2001 From: Ishita Gambhir Date: Thu, 25 Sep 2025 14:46:18 +0530 Subject: [PATCH 02/16] [Messaging] typecast Messaging Proposition for getPropositionsForSurface API (#534) * typecast Messaging Proposition * update README * update README --- .../app/MessagingView.tsx | 10 ++-------- packages/messaging/README.md | 15 +++++---------- packages/messaging/src/Messaging.ts | 13 ++++++++++++- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/apps/AEPSampleAppNewArchEnabled/app/MessagingView.tsx b/apps/AEPSampleAppNewArchEnabled/app/MessagingView.tsx index f4d8d827..95a11580 100644 --- a/apps/AEPSampleAppNewArchEnabled/app/MessagingView.tsx +++ b/apps/AEPSampleAppNewArchEnabled/app/MessagingView.tsx @@ -132,15 +132,9 @@ const unifiedTrackingExample = async () => { const propositions = messages[surface] || []; for (const proposition of propositions) { - const propositionWrapper = new MessagingProposition(proposition); - if (propositionWrapper.items.length > 0) { - const propositionItem = propositionWrapper.items[0]; + for (const propositionItem of proposition.items) { propositionItem.track(MessagingEdgeEventType.DISPLAY); - propositionItem.track( - 'content_card_clicked', - MessagingEdgeEventType.INTERACT, - null - ); + propositionItem.track('content_card_clicked', MessagingEdgeEventType.INTERACT, null); } } } diff --git a/packages/messaging/README.md b/packages/messaging/README.md index 3aaa0c3e..a5022600 100644 --- a/packages/messaging/README.md +++ b/packages/messaging/README.md @@ -223,7 +223,7 @@ propositionItem.track( ); ``` -When using `getPropositionsForSurfaces`, the returned objects can be wrapped with `MessagingProposition` to get typed items and convenient tracking via `PropositionItem.track(...)`. +When using `getPropositionsForSurfaces`, the returned objects are already `MessagingProposition` instances with typed items and convenient tracking via `PropositionItem.track(...)`. ```javascript import { Messaging, MessagingProposition, MessagingEdgeEventType } from '@adobe/react-native-aepmessaging'; @@ -233,17 +233,12 @@ const messages = await Messaging.getPropositionsForSurfaces(SURFACES); for (const surface of SURFACES) { const propositions = messages[surface] || []; - for (const proposition of propositions) { - const msgProp = new MessagingProposition(proposition); - - if (msgProp.items.length > 0) { - const propositionItem = msgProp.items[0]; - + for (const propositionItem of proposition.items) { // Track interaction with custom data - propositionItem.track('content_card_clicked', MessagingEdgeEventType.INTERACT, null); - // Track with tokens for sub-item tracking - propositionItem.track('button_click', MessagingEdgeEventType.INTERACT, ['token-1', 'token-2']); + propositionItem.track('content_card_clicked', MessagingEdgeEventType.INTERACT, null); + // Track with tokens for sub-item tracking + propositionItem.track('button_click', MessagingEdgeEventType.INTERACT, ['token-1', 'token-2']); } } } diff --git a/packages/messaging/src/Messaging.ts b/packages/messaging/src/Messaging.ts index 45467049..900be16c 100644 --- a/packages/messaging/src/Messaging.ts +++ b/packages/messaging/src/Messaging.ts @@ -105,8 +105,19 @@ class Messaging { static async getPropositionsForSurfaces( surfaces: string[] ): Promise> { - return await RCTAEPMessaging.getPropositionsForSurfaces(surfaces); + + const propositionsList = await RCTAEPMessaging.getPropositionsForSurfaces(surfaces); + let messagingPropositionsForSurfaces: Record = {}; + + for (const [surface, propositions] of Object.entries(propositionsList)) { + messagingPropositionsForSurfaces[surface] = propositions.map( + (proposition) => new MessagingProposition(proposition) + ); + } + + return messagingPropositionsForSurfaces; } + /** * @deprecated Use PropositionItem.track(...) instead. */ From 1db16a1a18c1e874cf935a6fed75f0dbb303ce86 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 10:13:36 -0700 Subject: [PATCH 03/16] remove conversion remove conversion --- packages/messaging/src/Messaging.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/messaging/src/Messaging.ts b/packages/messaging/src/Messaging.ts index 900be16c..4233424b 100644 --- a/packages/messaging/src/Messaging.ts +++ b/packages/messaging/src/Messaging.ts @@ -257,7 +257,6 @@ class Messaging { return []; } const contentCards = propositions - .map((proposition) => new MessagingProposition(proposition)) .flatMap((proposition) => proposition.items.filter( (item) => item.schema === PersonalizationSchema.CONTENT_CARD From f4c83f473b5b01d02a9687c66d4ee5f99282f445 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 11:14:27 -0700 Subject: [PATCH 04/16] remove old mapping for tracking remove old mapping for tracking --- packages/messaging/dist/module/Messaging.js | 10 ++++++++-- packages/messaging/dist/module/Messaging.js.map | 2 +- packages/messaging/dist/typescript/Messaging.d.ts.map | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/messaging/dist/module/Messaging.js b/packages/messaging/dist/module/Messaging.js index 2216d5f9..d0cde65d 100644 --- a/packages/messaging/dist/module/Messaging.js +++ b/packages/messaging/dist/module/Messaging.js @@ -62,8 +62,14 @@ class Messaging { * @returns A record of surface names with their corresponding propositions */ static async getPropositionsForSurfaces(surfaces) { - return await RCTAEPMessaging.getPropositionsForSurfaces(surfaces); + const propositionsList = await RCTAEPMessaging.getPropositionsForSurfaces(surfaces); + let messagingPropositionsForSurfaces = {}; + for (const [surface, propositions] of Object.entries(propositionsList)) { + messagingPropositionsForSurfaces[surface] = propositions.map(proposition => new MessagingProposition(proposition)); + } + return messagingPropositionsForSurfaces; } + /** * @deprecated Use PropositionItem.track(...) instead. */ @@ -161,7 +167,7 @@ class Messaging { if (!propositions?.length) { return []; } - const contentCards = propositions.map(proposition => new MessagingProposition(proposition)).flatMap(proposition => proposition.items.filter(item => item.schema === PersonalizationSchema.CONTENT_CARD)); + const contentCards = propositions.flatMap(proposition => proposition.items.filter(item => item.schema === PersonalizationSchema.CONTENT_CARD)); if (!contentCards?.length) { return []; } diff --git a/packages/messaging/dist/module/Messaging.js.map b/packages/messaging/dist/module/Messaging.js.map index 8bd62607..f774fb6b 100644 --- a/packages/messaging/dist/module/Messaging.js.map +++ b/packages/messaging/dist/module/Messaging.js.map @@ -1 +1 @@ -{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","Message","MessagingProposition","PersonalizationSchema","ContentTemplate","RCTAEPMessaging","AEPMessaging","messagingDelegate","Messaging","extensionVersion","Promise","resolve","refreshInAppMessages","getCachedMessages","messages","map","msg","getLatestMessage","message","undefined","getPropositionsForSurfaces","surfaces","trackContentCardDisplay","proposition","contentCard","trackContentCardInteraction","trackPropositionItem","itemId","interaction","eventType","tokens","setMessagingDelegate","delegate","eventEmitter","addListener","onShow","messageInstance","_clearJavascriptMessageHandlers","onDismiss","shouldShowMessage","shouldSaveMessage","setMessageSettings","OS","event","urlLoaded","url","onContentLoaded","removeAllListeners","updatePropositionsForSurfaces","getContentCardUI","surface","propositions","length","contentCards","flatMap","items","filter","item","schema","CONTENT_CARD","card","type","data","meta","adobe","template"],"sourceRoot":"../../src","sources":["Messaging.ts"],"mappings":"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","ignoreList":[]} +{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","Message","MessagingProposition","PersonalizationSchema","ContentTemplate","RCTAEPMessaging","AEPMessaging","messagingDelegate","Messaging","extensionVersion","Promise","resolve","refreshInAppMessages","getCachedMessages","messages","map","msg","getLatestMessage","message","undefined","getPropositionsForSurfaces","surfaces","propositionsList","messagingPropositionsForSurfaces","surface","propositions","Object","entries","proposition","trackContentCardDisplay","contentCard","trackContentCardInteraction","trackPropositionItem","itemId","interaction","eventType","tokens","setMessagingDelegate","delegate","eventEmitter","addListener","onShow","messageInstance","_clearJavascriptMessageHandlers","onDismiss","shouldShowMessage","shouldSaveMessage","setMessageSettings","OS","event","urlLoaded","url","onContentLoaded","removeAllListeners","updatePropositionsForSurfaces","getContentCardUI","length","contentCards","flatMap","items","filter","item","schema","CONTENT_CARD","card","type","data","meta","adobe","template"],"sourceRoot":"../../src","sources":["Messaging.ts"],"mappings":"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","ignoreList":[]} diff --git a/packages/messaging/dist/typescript/Messaging.d.ts.map b/packages/messaging/dist/typescript/Messaging.d.ts.map index 47da8cb8..5898f83a 100644 --- a/packages/messaging/dist/typescript/Messaging.d.ts.map +++ b/packages/messaging/dist/typescript/Messaging.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Messaging.d.ts","sourceRoot":"","sources":["../../src/Messaging.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Messaging.d.ts","sourceRoot":"","sources":["../../src/Messaging.ts"],"names":[],"mappings":"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"} \ No newline at end of file From be76b66e92a96cc514316143f796b527c86a8eff Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 11:39:02 -0700 Subject: [PATCH 05/16] Fix the different views from content card. It was showing only Remote view in the sample app event choose other selectedViews. --- .../app/ContentCardsView.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/AEPSampleAppNewArchEnabled/app/ContentCardsView.tsx b/apps/AEPSampleAppNewArchEnabled/app/ContentCardsView.tsx index 56dd72c4..96d7308c 100644 --- a/apps/AEPSampleAppNewArchEnabled/app/ContentCardsView.tsx +++ b/apps/AEPSampleAppNewArchEnabled/app/ContentCardsView.tsx @@ -67,12 +67,15 @@ const StyledText = ({ text }: { text: string }) => { const Header = ({ isLoading, - onTrackAction + onTrackAction, + selectedView, + setSelectedView }: { isLoading: boolean; onTrackAction: () => void; + selectedView: ViewOption; + setSelectedView: (view: ViewOption) => void; }) => { - const [selectedView, setSelectedView] = useState('Remote'); const [showPicker, setShowPicker] = useState(false); const [selectedTheme, setSelectedTheme] = useState('System'); const [trackInput, setTrackInput] = useState(''); @@ -250,7 +253,7 @@ const Header = ({ const MemoHeader = memo(Header); const ContentCardsView = () => { - const [selectedView] = useState('Remote'); + const [selectedView, setSelectedView] = useState('Remote'); const [trackInput, setTrackInput] = useState(''); const colorScheme = useColorScheme(); @@ -299,7 +302,12 @@ const ContentCardsView = () => { return ; }} ListHeaderComponent={ - + } ListEmptyComponent={() => selectedView === 'Remote' && ( From 6f27668d60c34c58c92ea519badb77d53bc77bec Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 17:18:31 -0700 Subject: [PATCH 06/16] Enable Corepack for ci to fix the test and indention issue Enable Corepack for ci to fix the test and indention issue --- .circleci/config.yml | 192 +++++++++++++++++++++++-------------------- 1 file changed, 102 insertions(+), 90 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dd5facd3..ea602e96 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,36 +8,40 @@ orbs: jobs: unit-test: docker: - - image: cimg/node:18.20 + - image: cimg/node:18.20 steps: - - checkout + - checkout - - restore_cache: - keys: - - yarn-cache-{{ checksum "yarn.lock" }} + - restore_cache: + keys: + - yarn-cache-{{ checksum "yarn.lock" }} - - run: - name: Install Node.js and Yarn Dependencies - command: yarn install + - run: + name: Enable Corepack + command: corepack enable - - run: - name: Build the Project - command: yarn run build + - run: + name: Install Node.js and Yarn Dependencies + command: yarn install - - run: - name: Expo Prebuild - command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild + - run: + name: Build the Project + command: yarn run build - - save_cache: - key: yarn-cache-{{ checksum "yarn.lock" }} - paths: - - ./node_modules - - ./apps/AEPSampleAppNewArchEnabled/node_modules + - run: + name: Expo Prebuild + command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild - - run: - name: Unit Tests - command: yarn test --watchAll=false --runInBand + - save_cache: + key: yarn-cache-{{ checksum "yarn.lock" }} + paths: + - ./node_modules + - ./apps/AEPSampleAppNewArchEnabled/node_modules + + - run: + name: Unit Tests + command: yarn test --watchAll=false --runInBand build-sample-app-android: executor: @@ -46,86 +50,94 @@ jobs: resource_class: large steps: - - checkout + - checkout + + - run: + name: Enable Corepack + command: corepack enable - - run: - name: Install Node.js and Yarn Dependencies - command: yarn install + - run: + name: Install Node.js and Yarn Dependencies + command: yarn install - - run: - name: Build the Project - command: yarn run build + - run: + name: Build the Project + command: yarn run build - - run: - name: Expo Prebuild - command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild + - run: + name: Expo Prebuild + command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild - - run: - name: Building Android Sample App - command: yarn sampleappnewarchenabled:android:build - environment: - _JAVA_OPTIONS: "-Xmx4096M -XX:MaxMetaspaceSize=512m" + - run: + name: Building Android Sample App + command: yarn sampleappnewarchenabled:android:build + environment: + _JAVA_OPTIONS: "-Xmx4096M -XX:MaxMetaspaceSize=512m" build-sample-app-ios: macos: xcode: 15.2 steps: - - checkout - - - restore_cache: - keys: - - ios-yarn-cache-{{ checksum "yarn.lock" }} - - - run: - name: Set Xcode Path - command: sudo xcode-select -s /Applications/Xcode.app - - - run: - name: Install Node.js and Yarn Dependencies - command: yarn install - - - run: - name: Build the Project - command: yarn run build - - - run: - name: Expo Prebuild - command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild - - - save_cache: - key: ios-yarn-cache-{{ checksum "yarn.lock" }} - paths: - - ./node_modules - - ./apps/AEPSampleAppNewArchEnabled/node_modules - - - run: - name: Install Cocoapods - command: sudo gem install cocoapods - - - run: - name: Install Pods - command: yarn sampleappnewarchenabled:ios:pod:install - - - run: - name: Building iOS Sample App - command: | - cd apps/AEPSampleAppNewArchEnabled/ios - xcodebuild \ - -workspace AEPSampleAppNewArchEnabled.xcworkspace \ - -scheme AEPSampleAppNewArchEnabled \ - -sdk iphonesimulator \ - -destination "generic/platform=iOS Simulator" \ - clean build + - checkout + + - restore_cache: + keys: + - ios-yarn-cache-{{ checksum "yarn.lock" }} + + - run: + name: Set Xcode Path + command: sudo xcode-select -s /Applications/Xcode.app + + - run: + name: Enable Corepack + command: corepack enable + + - run: + name: Install Node.js and Yarn Dependencies + command: yarn install + + - run: + name: Build the Project + command: yarn run build + + - run: + name: Expo Prebuild + command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild + + - save_cache: + key: ios-yarn-cache-{{ checksum "yarn.lock" }} + paths: + - ./node_modules + - ./apps/AEPSampleAppNewArchEnabled/node_modules + + - run: + name: Install Cocoapods + command: sudo gem install cocoapods + + - run: + name: Install Pods + command: yarn sampleappnewarchenabled:ios:pod:install + + - run: + name: Building iOS Sample App + command: | + cd apps/AEPSampleAppNewArchEnabled/ios + xcodebuild \ + -workspace AEPSampleAppNewArchEnabled.xcworkspace \ + -scheme AEPSampleAppNewArchEnabled \ + -sdk iphonesimulator \ + -destination "generic/platform=iOS Simulator" \ + clean build workflows: version: 2.1 ci-workflow: jobs: - - unit-test - - build-sample-app-ios - # - build-sample-app-android - # Disable the Android build job because of the error below: - # Execution failed for task ':react-native-reanimated:configureCMakeDebug[arm64-v8a]'. - # > [CXX1210] /root/project/apps/AEPSampleApp/node_modules/react-native-reanimated/android/CMakeLists.txt debug|arm64-v8a : No compatible library found - # The Android build job will be enabled once the issue is resolved. + - unit-test + - build-sample-app-ios + # - build-sample-app-android + # Disable the Android build job because of the error below: + # Execution failed for task ':react-native-reanimated:configureCMakeDebug[arm64-v8a]'. + # > [CXX1210] /root/project/apps/AEPSampleApp/node_modules/react-native-reanimated/android/CMakeLists.txt debug|arm64-v8a : No compatible library found + # The Android build job will be enabled once the issue is resolved. From 2d0fd9aab1bf0fb67148b8688910d2a1540a77e0 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 17:47:19 -0700 Subject: [PATCH 07/16] fix react-native import error for "test" fix react-native import error for "test" --- tests/jest/setup.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/jest/setup.ts b/tests/jest/setup.ts index 562e1f94..58397255 100644 --- a/tests/jest/setup.ts +++ b/tests/jest/setup.ts @@ -10,7 +10,19 @@ OF ANY KIND, either express or implied. See the License for the specific languag governing permissions and limitations under the License. */ -import * as ReactNative from 'react-native'; +// Use dynamic import to avoid TypeScript compilation issues +let ReactNative: any; +try { + ReactNative = require('react-native'); +} catch (error) { + // Fallback mock for when react-native is not available + ReactNative = { + NativeModules: {}, + NativeEventEmitter: class { + addListener() {} + } + }; +} jest.doMock('react-native', () => { return Object.setPrototypeOf( From 9848a418d338fac0de21d975e8259fab6f901f30 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 17:56:49 -0700 Subject: [PATCH 08/16] update sample package dependency update sample package dependency --- apps/AEPSampleAppNewArchEnabled/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/AEPSampleAppNewArchEnabled/package.json b/apps/AEPSampleAppNewArchEnabled/package.json index e4946434..5893e3c5 100644 --- a/apps/AEPSampleAppNewArchEnabled/package.json +++ b/apps/AEPSampleAppNewArchEnabled/package.json @@ -35,7 +35,7 @@ "@react-navigation/bottom-tabs": "7.3.12", "@react-navigation/core": "7.9.1", "@react-navigation/drawer": "7.3.11", - "@react-navigation/native": "7.1.8", + "@react-navigation/native": "^7.1.17", "@react-navigation/native-stack": "^7.3.1", "@react-navigation/routers": "7.3.7", "@react-navigation/stack": "7.3.1", From 895b91134f65f4b08e9a53422bb394b06cd04c2f Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 17:59:30 -0700 Subject: [PATCH 09/16] update yarn.lock file update yarn.lock file --- yarn.lock | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 03a9bfa0..70961bbf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5141,7 +5141,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/core@npm:^7.12.4, @react-navigation/core@npm:^7.9.1": +"@react-navigation/core@npm:^7.12.4": version: 7.12.4 resolution: "@react-navigation/core@npm:7.12.4" dependencies: @@ -5245,22 +5245,6 @@ __metadata: languageName: node linkType: hard -"@react-navigation/native@npm:7.1.8": - version: 7.1.8 - resolution: "@react-navigation/native@npm:7.1.8" - dependencies: - "@react-navigation/core": "npm:^7.9.1" - escape-string-regexp: "npm:^4.0.0" - fast-deep-equal: "npm:^3.1.3" - nanoid: "npm:^3.3.11" - use-latest-callback: "npm:^0.2.3" - peerDependencies: - react: ">= 18.2.0" - react-native: "*" - checksum: 10c0/61cc791daa7944bea20c92cc4f6109e38247926938cffa8a9715e4739f2c0db52671e7337ee3dd0178e0a0c7dfe63f30e40cdfec01f1c55298adb4f684c8bc37 - languageName: node - linkType: hard - "@react-navigation/native@npm:^6.1.8": version: 6.1.18 resolution: "@react-navigation/native@npm:6.1.18" @@ -5276,7 +5260,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/native@npm:^7.0.14": +"@react-navigation/native@npm:^7.0.14, @react-navigation/native@npm:^7.1.17": version: 7.1.17 resolution: "@react-navigation/native@npm:7.1.17" dependencies: @@ -6112,7 +6096,7 @@ __metadata: "@react-navigation/bottom-tabs": "npm:7.3.12" "@react-navigation/core": "npm:7.9.1" "@react-navigation/drawer": "npm:7.3.11" - "@react-navigation/native": "npm:7.1.8" + "@react-navigation/native": "npm:^7.1.17" "@react-navigation/native-stack": "npm:^7.3.1" "@react-navigation/routers": "npm:7.3.7" "@react-navigation/stack": "npm:7.3.1" From f97033b624414884906f3935935d730088b63416 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 18:25:24 -0700 Subject: [PATCH 10/16] fix CI test fix CI test --- apps/AEPSampleAppNewArchEnabled/package.json | 2 +- yarn.lock | 22 +++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/apps/AEPSampleAppNewArchEnabled/package.json b/apps/AEPSampleAppNewArchEnabled/package.json index 5893e3c5..e4946434 100644 --- a/apps/AEPSampleAppNewArchEnabled/package.json +++ b/apps/AEPSampleAppNewArchEnabled/package.json @@ -35,7 +35,7 @@ "@react-navigation/bottom-tabs": "7.3.12", "@react-navigation/core": "7.9.1", "@react-navigation/drawer": "7.3.11", - "@react-navigation/native": "^7.1.17", + "@react-navigation/native": "7.1.8", "@react-navigation/native-stack": "^7.3.1", "@react-navigation/routers": "7.3.7", "@react-navigation/stack": "7.3.1", diff --git a/yarn.lock b/yarn.lock index 70961bbf..03a9bfa0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5141,7 +5141,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/core@npm:^7.12.4": +"@react-navigation/core@npm:^7.12.4, @react-navigation/core@npm:^7.9.1": version: 7.12.4 resolution: "@react-navigation/core@npm:7.12.4" dependencies: @@ -5245,6 +5245,22 @@ __metadata: languageName: node linkType: hard +"@react-navigation/native@npm:7.1.8": + version: 7.1.8 + resolution: "@react-navigation/native@npm:7.1.8" + dependencies: + "@react-navigation/core": "npm:^7.9.1" + escape-string-regexp: "npm:^4.0.0" + fast-deep-equal: "npm:^3.1.3" + nanoid: "npm:^3.3.11" + use-latest-callback: "npm:^0.2.3" + peerDependencies: + react: ">= 18.2.0" + react-native: "*" + checksum: 10c0/61cc791daa7944bea20c92cc4f6109e38247926938cffa8a9715e4739f2c0db52671e7337ee3dd0178e0a0c7dfe63f30e40cdfec01f1c55298adb4f684c8bc37 + languageName: node + linkType: hard + "@react-navigation/native@npm:^6.1.8": version: 6.1.18 resolution: "@react-navigation/native@npm:6.1.18" @@ -5260,7 +5276,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/native@npm:^7.0.14, @react-navigation/native@npm:^7.1.17": +"@react-navigation/native@npm:^7.0.14": version: 7.1.17 resolution: "@react-navigation/native@npm:7.1.17" dependencies: @@ -6096,7 +6112,7 @@ __metadata: "@react-navigation/bottom-tabs": "npm:7.3.12" "@react-navigation/core": "npm:7.9.1" "@react-navigation/drawer": "npm:7.3.11" - "@react-navigation/native": "npm:^7.1.17" + "@react-navigation/native": "npm:7.1.8" "@react-navigation/native-stack": "npm:^7.3.1" "@react-navigation/routers": "npm:7.3.7" "@react-navigation/stack": "npm:7.3.1" From 06bd3b4dca05c403e923a362da2b52891e023f25 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 18:54:35 -0700 Subject: [PATCH 11/16] add timeout for ci steps add timeout for ci steps --- .circleci/config.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ea602e96..66a64a7c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,8 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install + command: yarn install --network-timeout 300000 + no_output_timeout: 20m - run: name: Build the Project @@ -58,7 +59,8 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install + command: yarn install --network-timeout 300000 + no_output_timeout: 20m - run: name: Build the Project @@ -95,7 +97,8 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install + command: yarn install --network-timeout 300000 + no_output_timeout: 20m - run: name: Build the Project From a89c153dd24c909842f55b3ac4288623d3bec6db Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Sun, 28 Sep 2025 23:34:37 -0700 Subject: [PATCH 12/16] fix ci tests fix ci tests --- .circleci/config.yml | 6 ++-- apps/AEPSampleAppNewArchEnabled/package.json | 2 +- jest.config.js | 6 ++++ yarn.lock | 32 +++++--------------- 4 files changed, 18 insertions(+), 28 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 66a64a7c..0cac5749 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 --network-concurrency 1 no_output_timeout: 20m - run: @@ -59,7 +59,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 --network-concurrency 1 no_output_timeout: 20m - run: @@ -97,7 +97,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 --network-concurrency 1 no_output_timeout: 20m - run: diff --git a/apps/AEPSampleAppNewArchEnabled/package.json b/apps/AEPSampleAppNewArchEnabled/package.json index e4946434..bd565a68 100644 --- a/apps/AEPSampleAppNewArchEnabled/package.json +++ b/apps/AEPSampleAppNewArchEnabled/package.json @@ -35,7 +35,7 @@ "@react-navigation/bottom-tabs": "7.3.12", "@react-navigation/core": "7.9.1", "@react-navigation/drawer": "7.3.11", - "@react-navigation/native": "7.1.8", + "@react-navigation/native": "7.1.17", "@react-navigation/native-stack": "^7.3.1", "@react-navigation/routers": "7.3.7", "@react-navigation/stack": "7.3.1", diff --git a/jest.config.js b/jest.config.js index 44ff49bb..3e9b01c9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -11,4 +11,10 @@ module.exports = { testPathIgnorePatterns: ['./packages/template'], moduleDirectories: ['node_modules', './apps/AEPSampleAppNewArchEnabled/node_modules'], moduleFileExtensions: ['ts', 'tsx', 'js'], + moduleNameMapper: { + '^react-native$': '/apps/AEPSampleAppNewArchEnabled/node_modules/react-native' + }, + transformIgnorePatterns: [ + 'node_modules/(?!(react-native|@react-native|@react-navigation)/)' + ] }; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 03a9bfa0..112e6ab6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5141,7 +5141,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/core@npm:^7.12.4, @react-navigation/core@npm:^7.9.1": +"@react-navigation/core@npm:^7.12.4": version: 7.12.4 resolution: "@react-navigation/core@npm:7.12.4" dependencies: @@ -5245,19 +5245,19 @@ __metadata: languageName: node linkType: hard -"@react-navigation/native@npm:7.1.8": - version: 7.1.8 - resolution: "@react-navigation/native@npm:7.1.8" +"@react-navigation/native@npm:7.1.17, @react-navigation/native@npm:^7.0.14": + version: 7.1.17 + resolution: "@react-navigation/native@npm:7.1.17" dependencies: - "@react-navigation/core": "npm:^7.9.1" + "@react-navigation/core": "npm:^7.12.4" escape-string-regexp: "npm:^4.0.0" fast-deep-equal: "npm:^3.1.3" nanoid: "npm:^3.3.11" - use-latest-callback: "npm:^0.2.3" + use-latest-callback: "npm:^0.2.4" peerDependencies: react: ">= 18.2.0" react-native: "*" - checksum: 10c0/61cc791daa7944bea20c92cc4f6109e38247926938cffa8a9715e4739f2c0db52671e7337ee3dd0178e0a0c7dfe63f30e40cdfec01f1c55298adb4f684c8bc37 + checksum: 10c0/2f560a508cb10261ce70eca3b77940f69c0bfdb08b551117cce41ab12a3ed8f869b9cf5048bb6f0c40e39293398c26e2d393cdfcab38d1d7c45732021cd8b2be languageName: node linkType: hard @@ -5276,22 +5276,6 @@ __metadata: languageName: node linkType: hard -"@react-navigation/native@npm:^7.0.14": - version: 7.1.17 - resolution: "@react-navigation/native@npm:7.1.17" - dependencies: - "@react-navigation/core": "npm:^7.12.4" - escape-string-regexp: "npm:^4.0.0" - fast-deep-equal: "npm:^3.1.3" - nanoid: "npm:^3.3.11" - use-latest-callback: "npm:^0.2.4" - peerDependencies: - react: ">= 18.2.0" - react-native: "*" - checksum: 10c0/2f560a508cb10261ce70eca3b77940f69c0bfdb08b551117cce41ab12a3ed8f869b9cf5048bb6f0c40e39293398c26e2d393cdfcab38d1d7c45732021cd8b2be - languageName: node - linkType: hard - "@react-navigation/routers@npm:7.3.7": version: 7.3.7 resolution: "@react-navigation/routers@npm:7.3.7" @@ -6112,7 +6096,7 @@ __metadata: "@react-navigation/bottom-tabs": "npm:7.3.12" "@react-navigation/core": "npm:7.9.1" "@react-navigation/drawer": "npm:7.3.11" - "@react-navigation/native": "npm:7.1.8" + "@react-navigation/native": "npm:7.1.17" "@react-navigation/native-stack": "npm:^7.3.1" "@react-navigation/routers": "npm:7.3.7" "@react-navigation/stack": "npm:7.3.1" From 51464824c4887cf6f0eb5c519deeb2977df7e127 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Mon, 29 Sep 2025 00:01:24 -0700 Subject: [PATCH 13/16] remove -network-concurrency remove -network-concurrency --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0cac5749..27ebb58a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 --network-concurrency 1 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: @@ -59,7 +59,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 --network-concurrency 1 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: @@ -97,7 +97,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 --network-concurrency 1 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: From 723718c80c2ae00b61d8d72d6823c9a6def29158 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Mon, 29 Sep 2025 00:10:30 -0700 Subject: [PATCH 14/16] fix config indentation fix config indentation --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 27ebb58a..66a64a7c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: @@ -59,7 +59,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: @@ -97,7 +97,7 @@ jobs: - run: name: Install Node.js and Yarn Dependencies - command: yarn install --network-timeout 300000 + command: yarn install --network-timeout 300000 no_output_timeout: 20m - run: From 1ec3f07808e4ce76b2890619a30cf1d990196e0e Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Mon, 29 Sep 2025 00:15:35 -0700 Subject: [PATCH 15/16] Increasing the memory limit from 4GB, Increasing the memory limit from 4GB, --- .circleci/config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 66a64a7c..ef6ae0df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,6 +25,8 @@ jobs: name: Install Node.js and Yarn Dependencies command: yarn install --network-timeout 300000 no_output_timeout: 20m + environment: + NODE_OPTIONS: "--max-old-space-size=4096" - run: name: Build the Project @@ -61,6 +63,8 @@ jobs: name: Install Node.js and Yarn Dependencies command: yarn install --network-timeout 300000 no_output_timeout: 20m + environment: + NODE_OPTIONS: "--max-old-space-size=4096" - run: name: Build the Project @@ -99,6 +103,8 @@ jobs: name: Install Node.js and Yarn Dependencies command: yarn install --network-timeout 300000 no_output_timeout: 20m + environment: + NODE_OPTIONS: "--max-old-space-size=4096" - run: name: Build the Project From d5bf3f5c75e757b5aa6478ddcbcb94e619ca7793 Mon Sep 17 00:00:00 2001 From: Calise Cheung Date: Mon, 29 Sep 2025 13:47:54 -0700 Subject: [PATCH 16/16] update for Rendered fewer hooks than expected error" when clicking dismiss update for Rendered fewer hooks than expected error" when clicking dismiss --- .../ContentCardView/ContentCardView.js | 24 ++++++++-------- .../ContentCardView/ContentCardView.js.map | 2 +- .../ContentCardView/ContentCardView.d.ts.map | 2 +- .../ContentCardView/ContentCardView.tsx | 28 ++++++++++--------- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js index 66b8096e..fe74c0f4 100644 --- a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js +++ b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js @@ -38,12 +38,6 @@ export const ContentCardView = ({ DismissButtonProps, ...props }) => { - console.log('ContentCardView', template); - - // Early returns for invalid data - must come before any hooks - if (!template.data) return null; - const content = template?.data?.content; - if (!content) return null; const colorScheme = useColorScheme(); const [isVisible, setIsVisible] = useState(true); const isDisplayedRef = useRef(false); @@ -76,6 +70,8 @@ export const ContentCardView = ({ return template.data.content.image?.url; }, [colorScheme, template.data?.content?.image?.darkUrl, template.data?.content?.image?.url]); const imageAspectRatio = useAspectRatio(imageUri); + + // Calculate styleOverrides before any early returns const styleOverrides = useMemo(() => { switch (cardVariant) { case 'SmallImage': @@ -89,18 +85,24 @@ export const ContentCardView = ({ } }, [_styleOverrides, cardVariant]); - // Call listener on mount to signal view display (only once and only when visible) + // Call listener on mount to signal view display (only once to prevent duplicates) useEffect(() => { - if (isVisible && !isDisplayedRef.current) { + if (!isDisplayedRef.current) { listener?.('onDisplay', template); // Track display event using propositionItem template.track?.(MessagingEdgeEventType.DISPLAY); isDisplayedRef.current = true; } - }, [isVisible, listener, template]); + }, [listener, template]); - // Use conditional rendering instead of early return to avoid hooks issues - return !isVisible ? null : /*#__PURE__*/React.createElement(Pressable, _extends({ + // All validation checks after ALL hooks are called + if (!isVisible) { + return null; + } + if (!template.data) return null; + const content = template?.data?.content; + if (!content) return null; + return /*#__PURE__*/React.createElement(Pressable, _extends({ onPress: onPress, style: state => [styles.card, styleOverrides?.card, typeof style === 'function' ? style(state) : style] }, props), /*#__PURE__*/React.createElement(View, _extends({ diff --git a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map index d8ea17b9..d0fd3c5c 100644 --- a/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map +++ b/packages/messaging/dist/module/ui/components/ContentCardView/ContentCardView.js.map @@ -1 +1 @@ -{"version":3,"names":["React","useEffect","useCallback","useState","useRef","useMemo","Image","Linking","Pressable","StyleSheet","Text","useColorScheme","View","MessagingEdgeEventType","DismissButton","useTheme","useAspectRatio","Button","ContentCardView","template","listener","variant","styleOverrides","_styleOverrides","style","ContainerProps","ImageContainerProps","ImageProps","ContentContainerProps","TextProps","TitleProps","BodyProps","ButtonContainerProps","ButtonProps","DismissButtonProps","props","console","log","data","content","colorScheme","isVisible","setIsVisible","isDisplayedRef","theme","cardVariant","type","onDismiss","track","DISMISS","onPress","INTERACT","actionUrl","openURL","error","warn","imageUri","image","darkUrl","url","imageAspectRatio","smallImageStyle","largeImageStyle","imageOnlyStyle","current","DISPLAY","createElement","_extends","state","styles","card","smallImageStyles","container","imageContainer","source","uri","aspectRatio","resizeMode","contentContainer","title","color","colors","textPrimary","text","body","buttonContainer","buttons","length","map","button","key","id","textStyle","buttonText","dismissBtn","create","margin","flex","flexDirection","alignItems","borderRadius","backgroundColor","width","paddingVertical","paddingHorizontal","justifyContent","textContent","marginBottom","fontSize","fontWeight","marginRight","lineHeight","flexWrap","paddingTop","gap","marginHorizontal","maxWidth","alignSelf"],"sourceRoot":"../../../../../src","sources":["ui/components/ContentCardView/ContentCardView.tsx"],"mappings":"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","ignoreList":[]} +{"version":3,"names":["React","useEffect","useCallback","useState","useRef","useMemo","Image","Linking","Pressable","StyleSheet","Text","useColorScheme","View","MessagingEdgeEventType","DismissButton","useTheme","useAspectRatio","Button","ContentCardView","template","listener","variant","styleOverrides","_styleOverrides","style","ContainerProps","ImageContainerProps","ImageProps","ContentContainerProps","TextProps","TitleProps","BodyProps","ButtonContainerProps","ButtonProps","DismissButtonProps","props","colorScheme","isVisible","setIsVisible","isDisplayedRef","theme","cardVariant","type","onDismiss","track","DISMISS","onPress","INTERACT","data","content","actionUrl","openURL","error","console","warn","imageUri","image","darkUrl","url","imageAspectRatio","smallImageStyle","largeImageStyle","imageOnlyStyle","current","DISPLAY","createElement","_extends","state","styles","card","smallImageStyles","container","imageContainer","source","uri","aspectRatio","resizeMode","contentContainer","title","color","colors","textPrimary","text","body","buttonContainer","buttons","length","map","button","key","id","textStyle","buttonText","dismissBtn","create","margin","flex","flexDirection","alignItems","borderRadius","backgroundColor","width","paddingVertical","paddingHorizontal","justifyContent","textContent","marginBottom","fontSize","fontWeight","marginRight","lineHeight","flexWrap","paddingTop","gap","marginHorizontal","maxWidth","alignSelf"],"sourceRoot":"../../../../../src","sources":["ui/components/ContentCardView/ContentCardView.tsx"],"mappings":"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","ignoreList":[]} diff --git a/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map b/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map index 40adffd2..aefaba73 100644 --- a/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map +++ b/packages/messaging/dist/typescript/ui/components/ContentCardView/ContentCardView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ContentCardView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ContentCardView/ContentCardView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAIL,cAAc,EAKf,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,eAAe,EACtB,WAAW,CAAC,EAAE,GAAG,KACd,IAAI,CAAC;AAEV,MAAM,WAAW,gBACf,SAAQ,cAAc,EACpB,sBAAsB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoNtD,CAAC"} \ No newline at end of file +{"version":3,"file":"ContentCardView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ContentCardView/ContentCardView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAIL,cAAc,EAKf,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,eAAe,EACtB,WAAW,CAAC,EAAE,GAAG,KACd,IAAI,CAAC;AAEV,MAAM,WAAW,gBACf,SAAQ,cAAc,EACpB,sBAAsB;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE;QACf,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;QACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAuNtD,CAAC"} \ No newline at end of file diff --git a/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx b/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx index 50e97472..34636f02 100644 --- a/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx +++ b/packages/messaging/src/ui/components/ContentCardView/ContentCardView.tsx @@ -79,14 +79,6 @@ export const ContentCardView: React.FC = ({ DismissButtonProps, ...props }) => { - console.log('ContentCardView', template); - - // Early returns for invalid data - must come before any hooks - if (!template.data) return null; - - const content = template?.data?.content as any; - if (!content) return null; - const colorScheme = useColorScheme(); const [isVisible, setIsVisible] = useState(true); const isDisplayedRef = useRef(false); @@ -153,18 +145,28 @@ export const ContentCardView: React.FC = ({ } }, [_styleOverrides, cardVariant]); - // Call listener on mount to signal view display (only once and only when visible) + // Call listener on mount to signal view display (only once to prevent duplicates) useEffect(() => { - if (isVisible && !isDisplayedRef.current) { + if (!isDisplayedRef.current) { listener?.('onDisplay', template); // Track display event using propositionItem template.track?.(MessagingEdgeEventType.DISPLAY); isDisplayedRef.current = true; } - }, [isVisible, listener, template]); + }, [listener, template]); + + // All validation checks after ALL hooks are called + if (!isVisible) { + return null; + } + + if (!template.data) return null; + + const content = template?.data?.content as any; + + if (!content) return null; - // Use conditional rendering instead of early return to avoid hooks issues - return !isVisible ? null : ( + return ( [