@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 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
- return (jsxRuntimeExports.jsx(reactNative.View, { style: [styles$1.screen, { backgroundColor: bgColor }], pointerEvents: interactionEnabled ? 'auto' : 'none', children: 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}`) }));
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 },