@namiml/expo-sdk 3.4.7-dev.202607230244 → 3.4.7-dev.202607230540
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +8 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +9 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/PaywallScreen.tsx +53 -36
package/dist/index.cjs
CHANGED
|
@@ -3381,7 +3381,14 @@ const PaywallScreen = ({ paywall, onClose, onCommitted, holdInteractionUntilFocu
|
|
|
3381
3381
|
if (fontGateState === 'pending') {
|
|
3382
3382
|
return (jsxRuntimeExports.jsx(reactNative.View, { style: [styles$1.screen, styles$1.pendingScreen, { backgroundColor: waitingOverlayColor }], children: jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "large", color: "#FFFFFF" }) }));
|
|
3383
3383
|
}
|
|
3384
|
-
|
|
3384
|
+
// NAM-1933: on phone/tablet, tapping the paywall background (empty area above
|
|
3385
|
+
// the keyboard) dismisses the keyboard. A Pressable wrapping the page content
|
|
3386
|
+
// yields the responder to interactive children (buttons, the text field), so
|
|
3387
|
+
// its onPress fires only for taps on non-interactive/empty areas. TV has no
|
|
3388
|
+
// keyboard, so it renders the content without the Pressable.
|
|
3389
|
+
const isTelevision = ctx.state.formFactor === 'television';
|
|
3390
|
+
const pageContent = (jsxRuntimeExports.jsxs(PageFocusWrapper, { ...pageFocusWrapperProps, children: [backgroundContainer && (jsxRuntimeExports.jsx(NamiBackgroundContainer, { component: backgroundContainer, scaleFactor: scaleFactor, onClose: onClose })), hasHeader && (jsxRuntimeExports.jsx(NamiHeader, { components: header, scaleFactor: scaleFactor, onClose: onClose })), contentContainer && (jsxRuntimeExports.jsx(NamiContentContainer, { component: contentContainer, scaleFactor: scaleFactor, onClose: onClose })), hasFooter && (jsxRuntimeExports.jsx(NamiFooter, { components: footer, scaleFactor: scaleFactor, onClose: onClose })), shouldHoldForFocus && !focusReady && (jsxRuntimeExports.jsx(reactNative.View, { pointerEvents: "none", style: [styles$1.waitingOverlay, { backgroundColor: waitingOverlayColor }] }))] }, `${paywall.id}:${page.name ?? currentPageName}`));
|
|
3391
|
+
return (jsxRuntimeExports.jsx(reactNative.View, { style: [styles$1.screen, { backgroundColor: bgColor }], pointerEvents: interactionEnabled ? 'auto' : 'none', children: isTelevision ? (pageContent) : (jsxRuntimeExports.jsx(reactNative.Pressable, { style: styles$1.screen, onPress: () => reactNative.Keyboard.dismiss(), accessible: false, children: pageContent })) }));
|
|
3385
3392
|
};
|
|
3386
3393
|
const styles$1 = reactNative.StyleSheet.create({
|
|
3387
3394
|
screen: { flex: 1 },
|