react-native-screens 4.0.0-beta.14 → 4.0.0-beta.15

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.
Files changed (46) hide show
  1. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +13 -3
  2. package/lib/commonjs/components/DebugContainer.js +40 -0
  3. package/lib/commonjs/components/DebugContainer.js.map +1 -0
  4. package/lib/commonjs/components/DebugContainer.web.js +15 -0
  5. package/lib/commonjs/components/DebugContainer.web.js.map +1 -0
  6. package/lib/commonjs/components/ScreenStack.js +7 -2
  7. package/lib/commonjs/components/ScreenStack.js.map +1 -1
  8. package/lib/commonjs/components/ScreenStackHeaderConfig.js +10 -10
  9. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
  10. package/lib/commonjs/components/ScreenStackItem.js +66 -0
  11. package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
  12. package/lib/commonjs/index.js +8 -0
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/module/components/DebugContainer.js +31 -0
  15. package/lib/module/components/DebugContainer.js.map +1 -0
  16. package/lib/module/components/DebugContainer.web.js +6 -0
  17. package/lib/module/components/DebugContainer.web.js.map +1 -0
  18. package/lib/module/components/ScreenStack.js +7 -2
  19. package/lib/module/components/ScreenStack.js.map +1 -1
  20. package/lib/module/components/ScreenStackHeaderConfig.js +10 -8
  21. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
  22. package/lib/module/components/ScreenStackItem.js +57 -0
  23. package/lib/module/components/ScreenStackItem.js.map +1 -0
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/typescript/components/DebugContainer.d.ts +15 -0
  27. package/lib/typescript/components/DebugContainer.d.ts.map +1 -0
  28. package/lib/typescript/components/DebugContainer.web.d.ts +4 -0
  29. package/lib/typescript/components/DebugContainer.web.d.ts.map +1 -0
  30. package/lib/typescript/components/ScreenStack.d.ts.map +1 -1
  31. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +2 -2
  32. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -1
  33. package/lib/typescript/components/ScreenStackItem.d.ts +10 -0
  34. package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -0
  35. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +1 -1
  36. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -1
  37. package/lib/typescript/index.d.ts +1 -0
  38. package/lib/typescript/index.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/components/DebugContainer.tsx +47 -0
  41. package/src/components/DebugContainer.web.tsx +7 -0
  42. package/src/components/ScreenStack.tsx +15 -5
  43. package/src/components/ScreenStackHeaderConfig.tsx +24 -13
  44. package/src/components/ScreenStackItem.tsx +122 -0
  45. package/src/fabric/ScreenStackNativeComponent.ts +1 -1
  46. package/src/index.tsx +1 -0
@@ -3,9 +3,11 @@ package com.swmansion.rnscreens
3
3
  import android.annotation.SuppressLint
4
4
  import android.content.Context
5
5
  import android.os.Build
6
+ import android.view.WindowManager
6
7
  import androidx.appcompat.widget.Toolbar
7
8
  import com.facebook.react.modules.core.ChoreographerCompat
8
9
  import com.facebook.react.modules.core.ReactChoreographer
10
+ import com.facebook.react.uimanager.ThemedReactContext
9
11
 
10
12
  // This class is used to store config closer to search bar
11
13
  @SuppressLint("ViewConstructor") // Only we construct this view, it is never inflated.
@@ -18,9 +20,11 @@ open class CustomToolbar(
18
20
  object : ChoreographerCompat.FrameCallback() {
19
21
  override fun doFrame(frameTimeNanos: Long) {
20
22
  isLayoutEnqueued = false
23
+ // The following measure specs are selected to work only with Android APIs <= 29.
24
+ // See https://github.com/software-mansion/react-native-screens/pull/2439
21
25
  measure(
22
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
23
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY),
26
+ MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST),
27
+ MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST),
24
28
  )
25
29
  layout(left, top, right, bottom)
26
30
  }
@@ -28,7 +32,13 @@ open class CustomToolbar(
28
32
 
29
33
  override fun requestLayout() {
30
34
  super.requestLayout()
31
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) {
35
+ val softInputMode =
36
+ (context as ThemedReactContext)
37
+ .currentActivity
38
+ ?.window
39
+ ?.attributes
40
+ ?.softInputMode
41
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q && softInputMode == WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) {
32
42
  // Below Android API 29, layout is not being requested when subviews are being added to the layout,
33
43
  // leading to having their subviews in position 0,0 of the toolbar (as Android don't calculate
34
44
  // the position of each subview, even if Yoga has correctly set their width and height).
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _AppContainer = _interopRequireDefault(require("react-native/Libraries/ReactNative/AppContainer"));
10
+ var _ScreenContentWrapper = _interopRequireDefault(require("./ScreenContentWrapper"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ // @ts-expect-error importing private component
15
+ // eslint-disable-next-line import/namespace, import/default, import/no-named-as-default, import/no-named-as-default-member
16
+ /**
17
+ * This view must *not* be flattened.
18
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
19
+ * for detailed explanation.
20
+ */
21
+ let DebugContainer = props => {
22
+ return /*#__PURE__*/React.createElement(_ScreenContentWrapper.default, props);
23
+ };
24
+ if (process.env.NODE_ENV !== 'production') {
25
+ // eslint-disable-next-line react/display-name
26
+ DebugContainer = props => {
27
+ const {
28
+ stackPresentation,
29
+ ...rest
30
+ } = props;
31
+ if (_reactNative.Platform.OS === 'ios' && stackPresentation !== 'push' && stackPresentation !== 'formSheet') {
32
+ // This is necessary for LogBox
33
+ return /*#__PURE__*/React.createElement(_AppContainer.default, null, /*#__PURE__*/React.createElement(_ScreenContentWrapper.default, rest));
34
+ }
35
+ return /*#__PURE__*/React.createElement(_ScreenContentWrapper.default, rest);
36
+ };
37
+ DebugContainer.displayName = 'DebugContainer';
38
+ }
39
+ var _default = exports.default = DebugContainer;
40
+ //# sourceMappingURL=DebugContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_AppContainer","_interopRequireDefault","_ScreenContentWrapper","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DebugContainer","props","createElement","process","env","NODE_ENV","stackPresentation","rest","Platform","OS","displayName","_default","exports"],"sourceRoot":"../../../src","sources":["components/DebugContainer.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAD,sBAAA,CAAAH,OAAA;AAA0D,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAH1D;AACA;AAUA;AACA;AACA;AACA;AACA;AACA,IAAIY,cAAmD,GAAIC,KAAK,IAAK;EACnE,oBAAO9B,KAAA,CAAA+B,aAAA,CAACzB,qBAAA,CAAAG,OAAoB,EAAKqB,KAAQ,CAAC;AAC5C,CAAC;AAED,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzC;EACAL,cAAc,GAAIC,KAAqB,IAAK;IAC1C,MAAM;MAAEK,iBAAiB;MAAE,GAAGC;IAAK,CAAC,GAAGN,KAAK;IAE5C,IACEO,qBAAQ,CAACC,EAAE,KAAK,KAAK,IACrBH,iBAAiB,KAAK,MAAM,IAC5BA,iBAAiB,KAAK,WAAW,EACjC;MACA;MACA,oBACEnC,KAAA,CAAA+B,aAAA,CAAC3B,aAAA,CAAAK,OAAY,qBACXT,KAAA,CAAA+B,aAAA,CAACzB,qBAAA,CAAAG,OAAoB,EAAK2B,IAAO,CACrB,CAAC;IAEnB;IAEA,oBAAOpC,KAAA,CAAA+B,aAAA,CAACzB,qBAAA,CAAAG,OAAoB,EAAK2B,IAAO,CAAC;EAC3C,CAAC;EAEDP,cAAc,CAACU,WAAW,GAAG,gBAAgB;AAC/C;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEcoB,cAAc"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = DebugContainer;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _ScreenContentWrapper = _interopRequireDefault(require("./ScreenContentWrapper"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function DebugContainer(props) {
13
+ return /*#__PURE__*/React.createElement(_ScreenContentWrapper.default, props);
14
+ }
15
+ //# sourceMappingURL=DebugContainer.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_ScreenContentWrapper","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DebugContainer","props","createElement"],"sourceRoot":"../../../src","sources":["components/DebugContainer.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0D,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAE3C,SAASY,cAAcA,CAACC,KAAgB,EAAG;EACxD,oBAAO5B,KAAA,CAAA6B,aAAA,CAAC1B,qBAAA,CAAAI,OAAoB,EAAKqB,KAAQ,CAAC;AAC5C"}
@@ -11,7 +11,6 @@ var _DelayedFreeze = _interopRequireDefault(require("./helpers/DelayedFreeze"));
11
11
  var _ScreenStackNativeComponent = _interopRequireDefault(require("../fabric/ScreenStackNativeComponent"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // Native components
14
- const NativeScreenStack = _ScreenStackNativeComponent.default;
15
14
  function isFabric() {
16
15
  return 'nativeFabricUIManager' in global;
17
16
  }
@@ -45,7 +44,13 @@ function ScreenStack(props) {
45
44
  gestureDetectorBridge.current.stackUseEffectCallback(ref);
46
45
  }
47
46
  });
48
- return /*#__PURE__*/_react.default.createElement(NativeScreenStack, _extends({}, rest, {
47
+ return /*#__PURE__*/_react.default.createElement(_ScreenStackNativeComponent.default, _extends({}, rest, {
48
+ /**
49
+ * This messy override is to conform NativeProps used by codegen and
50
+ * our Public API. To see reasoning go to this PR:
51
+ * https://github.com/software-mansion/react-native-screens/pull/2423#discussion_r1810616995
52
+ */
53
+ onFinishTransitioning: props.onFinishTransitioning,
49
54
  ref: ref
50
55
  }), childrenWithFreeze);
51
56
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Object","defineProperty","exports","value","default","_react","_interopRequireDefault","require","_core","_DelayedFreeze","_ScreenStackNativeComponent","obj","__esModule","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","NativeScreenStack","ScreenStackNativeComponent","isFabric","global","ScreenStack","props","children","gestureDetectorBridge","rest","ref","React","useRef","size","Children","count","childrenWithFreeze","map","child","index","descriptor","descriptors","isFreezeEnabled","options","freezeOnBlur","freezeEnabled","freezePreviousScreen","createElement","freeze","useEffect","current","stackUseEffectCallback","_default"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAGA,IAAAG,2BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA8E,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAP,OAAA,EAAAO,GAAA;AAAA,SAAAE,SAAA,IAAAA,QAAA,GAAAb,MAAA,CAAAc,MAAA,GAAAd,MAAA,CAAAc,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAApB,MAAA,CAAAsB,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAH,QAAA,CAAAY,KAAA,OAAAP,SAAA,KAD9E;AAEA,MAAMQ,iBAAwD,GAC5DC,mCAAiC;AAEnC,SAASC,QAAQA,CAAA,EAAG;EAClB,OAAO,uBAAuB,IAAIC,MAAM;AAC1C;AAEA,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC5C,MAAM;IAAEC,QAAQ;IAAEC,qBAAqB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC1D,MAAMI,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAC,IAAI,CAAC;EAC9B,MAAMC,IAAI,GAAGF,cAAK,CAACG,QAAQ,CAACC,KAAK,CAACR,QAAQ,CAAC;EAC3C;EACA,MAAMS,kBAAkB,GAAGL,cAAK,CAACG,QAAQ,CAACG,GAAG,CAACV,QAAQ,EAAE,CAACW,KAAK,EAAEC,KAAK,KAAK;IACxE;IACA,MAAM;MAAEb,KAAK;MAAEV;IAAI,CAAC,GAAGsB,KAAK;IAC5B,MAAME,UAAU,GAAGd,KAAK,EAAEc,UAAU,IAAId,KAAK,EAAEe,WAAW,GAAGzB,GAAG,CAAC;IACjE,MAAM0B,eAAe,GACnBF,UAAU,EAAEG,OAAO,EAAEC,YAAY,IAAI,IAAAC,mBAAa,EAAC,CAAC;;IAEtD;IACA;IACA,MAAMC,oBAAoB,GAAGvB,QAAQ,CAAC,CAAC,GACnCU,IAAI,GAAGM,KAAK,GAAG,CAAC,GAChBN,IAAI,GAAGM,KAAK,GAAG,CAAC;IAEpB,oBACEvC,MAAA,CAAAD,OAAA,CAAAgD,aAAA,CAAC3C,cAAA,CAAAL,OAAa;MAACiD,MAAM,EAAEN,eAAe,IAAII;IAAqB,GAC5DR,KACY,CAAC;EAEpB,CAAC,CAAC;EAEFP,cAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,IAAIrB,qBAAqB,EAAE;MACzBA,qBAAqB,CAACsB,OAAO,CAACC,sBAAsB,CAACrB,GAAG,CAAC;IAC3D;EACF,CAAC,CAAC;EACF,oBACE9B,MAAA,CAAAD,OAAA,CAAAgD,aAAA,CAAC1B,iBAAiB,EAAAb,QAAA,KAAKqB,IAAI;IAAEC,GAAG,EAAEA;EAAI,IACnCM,kBACgB,CAAC;AAExB;AAAC,IAAAgB,QAAA,GAAAvD,OAAA,CAAAE,OAAA,GAEc0B,WAAW"}
1
+ {"version":3,"names":["Object","defineProperty","exports","value","default","_react","_interopRequireDefault","require","_core","_DelayedFreeze","_ScreenStackNativeComponent","obj","__esModule","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","isFabric","global","ScreenStack","props","children","gestureDetectorBridge","rest","ref","React","useRef","size","Children","count","childrenWithFreeze","map","child","index","descriptor","descriptors","isFreezeEnabled","options","freezeOnBlur","freezeEnabled","freezePreviousScreen","createElement","freeze","useEffect","current","stackUseEffectCallback","onFinishTransitioning","_default"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAGA,IAAAG,2BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAE8C,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAP,OAAA,EAAAO,GAAA;AAAA,SAAAE,SAAA,IAAAA,QAAA,GAAAb,MAAA,CAAAc,MAAA,GAAAd,MAAA,CAAAc,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAApB,MAAA,CAAAsB,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAH,QAAA,CAAAY,KAAA,OAAAP,SAAA,KAH9C;AAKA,SAASQ,QAAQA,CAAA,EAAG;EAClB,OAAO,uBAAuB,IAAIC,MAAM;AAC1C;AAEA,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC5C,MAAM;IAAEC,QAAQ;IAAEC,qBAAqB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC1D,MAAMI,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAC,IAAI,CAAC;EAC9B,MAAMC,IAAI,GAAGF,cAAK,CAACG,QAAQ,CAACC,KAAK,CAACR,QAAQ,CAAC;EAC3C;EACA,MAAMS,kBAAkB,GAAGL,cAAK,CAACG,QAAQ,CAACG,GAAG,CAACV,QAAQ,EAAE,CAACW,KAAK,EAAEC,KAAK,KAAK;IACxE;IACA,MAAM;MAAEb,KAAK;MAAER;IAAI,CAAC,GAAGoB,KAAK;IAC5B,MAAME,UAAU,GAAGd,KAAK,EAAEc,UAAU,IAAId,KAAK,EAAEe,WAAW,GAAGvB,GAAG,CAAC;IACjE,MAAMwB,eAAe,GACnBF,UAAU,EAAEG,OAAO,EAAEC,YAAY,IAAI,IAAAC,mBAAa,EAAC,CAAC;;IAEtD;IACA;IACA,MAAMC,oBAAoB,GAAGvB,QAAQ,CAAC,CAAC,GACnCU,IAAI,GAAGM,KAAK,GAAG,CAAC,GAChBN,IAAI,GAAGM,KAAK,GAAG,CAAC;IAEpB,oBACErC,MAAA,CAAAD,OAAA,CAAA8C,aAAA,CAACzC,cAAA,CAAAL,OAAa;MAAC+C,MAAM,EAAEN,eAAe,IAAII;IAAqB,GAC5DR,KACY,CAAC;EAEpB,CAAC,CAAC;EAEFP,cAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,IAAIrB,qBAAqB,EAAE;MACzBA,qBAAqB,CAACsB,OAAO,CAACC,sBAAsB,CAACrB,GAAG,CAAC;IAC3D;EACF,CAAC,CAAC;EACF,oBACE5B,MAAA,CAAAD,OAAA,CAAA8C,aAAA,CAACxC,2BAAA,CAAAN,OAA0B,EAAAS,QAAA,KACrBmB,IAAI;IACR;AACN;AACA;AACA;AACA;IACMuB,qBAAqB,EACnB1B,KAAK,CAAC0B,qBACP;IACDtB,GAAG,EAAEA;EAAI,IACRM,kBACyB,CAAC;AAEjC;AAAC,IAAAiB,QAAA,GAAAtD,OAAA,CAAAE,OAAA,GAEcwB,WAAW"}
@@ -4,9 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.ScreenStackHeaderCenterView = exports.ScreenStackHeaderBackButtonImage = void 0;
8
- exports.ScreenStackHeaderConfig = ScreenStackHeaderConfig;
9
- exports.ScreenStackHeaderSubview = exports.ScreenStackHeaderSearchBarView = exports.ScreenStackHeaderRightView = exports.ScreenStackHeaderLeftView = void 0;
7
+ exports.ScreenStackHeaderSubview = exports.ScreenStackHeaderSearchBarView = exports.ScreenStackHeaderRightView = exports.ScreenStackHeaderLeftView = exports.ScreenStackHeaderConfig = exports.ScreenStackHeaderCenterView = exports.ScreenStackHeaderBackButtonImage = void 0;
10
8
  var _react = _interopRequireDefault(require("react"));
11
9
  var _reactNative = require("react-native");
12
10
  var _ScreenStackHeaderConfigNativeComponent = _interopRequireDefault(require("../fabric/ScreenStackHeaderConfigNativeComponent"));
@@ -14,12 +12,12 @@ var _ScreenStackHeaderSubviewNativeComponent = _interopRequireDefault(require(".
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // Native components
16
14
  const ScreenStackHeaderSubview = exports.ScreenStackHeaderSubview = _ScreenStackHeaderSubviewNativeComponent.default;
17
- function ScreenStackHeaderConfig(props) {
18
- return /*#__PURE__*/_react.default.createElement(_ScreenStackHeaderConfigNativeComponent.default, _extends({}, props, {
19
- style: styles.headerConfig,
20
- pointerEvents: "box-none"
21
- }));
22
- }
15
+ const ScreenStackHeaderConfig = exports.ScreenStackHeaderConfig = /*#__PURE__*/_react.default.forwardRef((props, ref) => /*#__PURE__*/_react.default.createElement(_ScreenStackHeaderConfigNativeComponent.default, _extends({}, props, {
16
+ ref: ref,
17
+ style: styles.headerConfig,
18
+ pointerEvents: "box-none"
19
+ })));
20
+ ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
23
21
  const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, {
24
22
  type: "back",
25
23
  style: styles.headerSubview
@@ -84,7 +82,9 @@ const styles = _reactNative.StyleSheet.create({
84
82
  width: '100%',
85
83
  flexDirection: 'row',
86
84
  justifyContent: 'space-between',
87
- alignItems: 'center'
85
+ // We only want to center align the subviews on iOS.
86
+ // See https://github.com/software-mansion/react-native-screens/pull/2456
87
+ alignItems: _reactNative.Platform.OS === 'ios' ? 'center' : undefined
88
88
  }
89
89
  });
90
90
  //# sourceMappingURL=ScreenStackHeaderConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Object","defineProperty","exports","value","ScreenStackHeaderCenterView","ScreenStackHeaderBackButtonImage","ScreenStackHeaderConfig","ScreenStackHeaderSubview","ScreenStackHeaderSearchBarView","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","_react","_interopRequireDefault","require","_reactNative","_ScreenStackHeaderConfigNativeComponent","_ScreenStackHeaderSubviewNativeComponent","obj","__esModule","default","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ScreenStackHeaderSubviewNativeComponent","props","createElement","style","styles","headerConfig","pointerEvents","type","headerSubview","Image","resizeMode","fadeDuration","rest","headerSubviewCenter","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","position","top","width"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["Object","defineProperty","exports","value","ScreenStackHeaderSubview","ScreenStackHeaderSearchBarView","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderConfig","ScreenStackHeaderCenterView","ScreenStackHeaderBackButtonImage","_react","_interopRequireDefault","require","_reactNative","_ScreenStackHeaderConfigNativeComponent","_ScreenStackHeaderSubviewNativeComponent","obj","__esModule","default","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ScreenStackHeaderSubviewNativeComponent","React","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","type","headerSubview","Image","resizeMode","fadeDuration","rest","headerSubviewCenter","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","position","top","width","Platform","OS","undefined"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _warnOnce = _interopRequireDefault(require("warn-once"));
10
+ var _DebugContainer = _interopRequireDefault(require("./DebugContainer"));
11
+ var _ScreenStackHeaderConfig = require("./ScreenStackHeaderConfig");
12
+ var _Screen = _interopRequireDefault(require("./Screen"));
13
+ var _ScreenStack = _interopRequireDefault(require("./ScreenStack"));
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
+ function ScreenStackItem(_ref, ref) {
19
+ let {
20
+ children,
21
+ headerConfig,
22
+ activityState,
23
+ stackPresentation,
24
+ contentStyle,
25
+ ...rest
26
+ } = _ref;
27
+ const isHeaderInModal = _reactNative.Platform.OS === 'android' ? false : stackPresentation !== 'push' && headerConfig?.hidden === false;
28
+ const headerHiddenPreviousRef = React.useRef(headerConfig?.hidden);
29
+ React.useEffect(() => {
30
+ (0, _warnOnce.default)(_reactNative.Platform.OS !== 'android' && stackPresentation !== 'push' && headerHiddenPreviousRef.current !== headerConfig?.hidden, `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`);
31
+ headerHiddenPreviousRef.current = headerConfig?.hidden;
32
+ }, [headerConfig?.hidden, stackPresentation]);
33
+ const content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DebugContainer.default, {
34
+ style: [stackPresentation === 'formSheet' ? _reactNative.Platform.OS === 'ios' ? styles.absolute : null : styles.container, contentStyle],
35
+ stackPresentation: stackPresentation ?? 'push'
36
+ }, children), /*#__PURE__*/React.createElement(_ScreenStackHeaderConfig.ScreenStackHeaderConfig, headerConfig));
37
+ return /*#__PURE__*/React.createElement(_Screen.default, _extends({
38
+ ref: ref,
39
+ enabled: true,
40
+ isNativeStack: true,
41
+ activityState: activityState,
42
+ stackPresentation: stackPresentation,
43
+ hasLargeHeader: headerConfig?.largeTitle ?? false
44
+ }, rest), isHeaderInModal ? /*#__PURE__*/React.createElement(_ScreenStack.default, {
45
+ style: styles.container
46
+ }, /*#__PURE__*/React.createElement(_Screen.default, {
47
+ enabled: true,
48
+ isNativeStack: true,
49
+ activityState: activityState,
50
+ hasLargeHeader: headerConfig?.largeTitle ?? false,
51
+ style: _reactNative.StyleSheet.absoluteFill
52
+ }, content)) : content);
53
+ }
54
+ var _default = exports.default = /*#__PURE__*/React.forwardRef(ScreenStackItem);
55
+ const styles = _reactNative.StyleSheet.create({
56
+ container: {
57
+ flex: 1
58
+ },
59
+ absolute: {
60
+ position: 'absolute',
61
+ top: 0,
62
+ start: 0,
63
+ end: 0
64
+ }
65
+ });
66
+ //# sourceMappingURL=ScreenStackItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_warnOnce","_interopRequireDefault","_DebugContainer","_ScreenStackHeaderConfig","_Screen","_ScreenStack","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","ScreenStackItem","_ref","ref","children","headerConfig","activityState","stackPresentation","contentStyle","rest","isHeaderInModal","Platform","OS","hidden","headerHiddenPreviousRef","useRef","useEffect","warnOnce","current","content","createElement","Fragment","style","styles","absolute","container","ScreenStackHeaderConfig","enabled","isNativeStack","hasLargeHeader","largeTitle","StyleSheet","absoluteFill","_default","exports","forwardRef","create","flex","position","top","start","end"],"sourceRoot":"../../../src","sources":["components/ScreenStackItem.tsx"],"mappings":"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"}
@@ -21,6 +21,7 @@ var _exportNames = {
21
21
  SearchBar: true,
22
22
  ScreenContainer: true,
23
23
  ScreenStack: true,
24
+ ScreenStackItem: true,
24
25
  FullWindowOverlay: true,
25
26
  ScreenFooter: true,
26
27
  ScreenContentWrapper: true,
@@ -126,6 +127,12 @@ Object.defineProperty(exports, "ScreenStackHeaderSubview", {
126
127
  return _ScreenStackHeaderConfig.ScreenStackHeaderSubview;
127
128
  }
128
129
  });
130
+ Object.defineProperty(exports, "ScreenStackItem", {
131
+ enumerable: true,
132
+ get: function () {
133
+ return _ScreenStackItem.default;
134
+ }
135
+ });
129
136
  Object.defineProperty(exports, "SearchBar", {
130
137
  enumerable: true,
131
138
  get: function () {
@@ -198,6 +205,7 @@ var _ScreenStackHeaderConfig = require("./components/ScreenStackHeaderConfig");
198
205
  var _SearchBar = _interopRequireDefault(require("./components/SearchBar"));
199
206
  var _ScreenContainer = _interopRequireDefault(require("./components/ScreenContainer"));
200
207
  var _ScreenStack = _interopRequireDefault(require("./components/ScreenStack"));
208
+ var _ScreenStackItem = _interopRequireDefault(require("./components/ScreenStackItem"));
201
209
  var _FullWindowOverlay = _interopRequireDefault(require("./components/FullWindowOverlay"));
202
210
  var _ScreenFooter = _interopRequireDefault(require("./components/ScreenFooter"));
203
211
  var _ScreenContentWrapper = _interopRequireDefault(require("./components/ScreenContentWrapper"));
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_core","_Screen","_interopRequireWildcard","_ScreenStackHeaderConfig","_SearchBar","_interopRequireDefault","_ScreenContainer","_ScreenStack","_FullWindowOverlay","_ScreenFooter","_ScreenContentWrapper","_GHContext","_utils","_useTransitionProgress","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_core","_Screen","_interopRequireWildcard","_ScreenStackHeaderConfig","_SearchBar","_interopRequireDefault","_ScreenContainer","_ScreenStack","_ScreenStackItem","_FullWindowOverlay","_ScreenFooter","_ScreenContentWrapper","_GHContext","_utils","_useTransitionProgress","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import { Platform } from 'react-native';
3
+ // @ts-expect-error importing private component
4
+ // eslint-disable-next-line import/namespace, import/default, import/no-named-as-default, import/no-named-as-default-member
5
+ import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
6
+ import ScreenContentWrapper from './ScreenContentWrapper';
7
+ /**
8
+ * This view must *not* be flattened.
9
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
10
+ * for detailed explanation.
11
+ */
12
+ let DebugContainer = props => {
13
+ return /*#__PURE__*/React.createElement(ScreenContentWrapper, props);
14
+ };
15
+ if (process.env.NODE_ENV !== 'production') {
16
+ // eslint-disable-next-line react/display-name
17
+ DebugContainer = props => {
18
+ const {
19
+ stackPresentation,
20
+ ...rest
21
+ } = props;
22
+ if (Platform.OS === 'ios' && stackPresentation !== 'push' && stackPresentation !== 'formSheet') {
23
+ // This is necessary for LogBox
24
+ return /*#__PURE__*/React.createElement(AppContainer, null, /*#__PURE__*/React.createElement(ScreenContentWrapper, rest));
25
+ }
26
+ return /*#__PURE__*/React.createElement(ScreenContentWrapper, rest);
27
+ };
28
+ DebugContainer.displayName = 'DebugContainer';
29
+ }
30
+ export default DebugContainer;
31
+ //# sourceMappingURL=DebugContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Platform","AppContainer","ScreenContentWrapper","DebugContainer","props","createElement","process","env","NODE_ENV","stackPresentation","rest","OS","displayName"],"sourceRoot":"../../../src","sources":["components/DebugContainer.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAwB,cAAc;AACvD;AACA;AACA,OAAOC,YAAY,MAAM,iDAAiD;AAC1E,OAAOC,oBAAoB,MAAM,wBAAwB;AAQzD;AACA;AACA;AACA;AACA;AACA,IAAIC,cAAmD,GAAIC,KAAK,IAAK;EACnE,oBAAOL,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKE,KAAQ,CAAC;AAC5C,CAAC;AAED,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzC;EACAL,cAAc,GAAIC,KAAqB,IAAK;IAC1C,MAAM;MAAEK,iBAAiB;MAAE,GAAGC;IAAK,CAAC,GAAGN,KAAK;IAE5C,IACEJ,QAAQ,CAACW,EAAE,KAAK,KAAK,IACrBF,iBAAiB,KAAK,MAAM,IAC5BA,iBAAiB,KAAK,WAAW,EACjC;MACA;MACA,oBACEV,KAAA,CAAAM,aAAA,CAACJ,YAAY,qBACXF,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKQ,IAAO,CACrB,CAAC;IAEnB;IAEA,oBAAOX,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKQ,IAAO,CAAC;EAC3C,CAAC;EAEDP,cAAc,CAACS,WAAW,GAAG,gBAAgB;AAC/C;AAEA,eAAeT,cAAc"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import ScreenContentWrapper from './ScreenContentWrapper';
3
+ export default function DebugContainer(props) {
4
+ return /*#__PURE__*/React.createElement(ScreenContentWrapper, props);
5
+ }
6
+ //# sourceMappingURL=DebugContainer.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ScreenContentWrapper","DebugContainer","props","createElement"],"sourceRoot":"../../../src","sources":["components/DebugContainer.web.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,eAAe,SAASC,cAAcA,CAACC,KAAgB,EAAG;EACxD,oBAAOH,KAAA,CAAAI,aAAA,CAACH,oBAAoB,EAAKE,KAAQ,CAAC;AAC5C"}
@@ -7,7 +7,6 @@ import DelayedFreeze from './helpers/DelayedFreeze';
7
7
 
8
8
  // Native components
9
9
  import ScreenStackNativeComponent from '../fabric/ScreenStackNativeComponent';
10
- const NativeScreenStack = ScreenStackNativeComponent;
11
10
  function isFabric() {
12
11
  return 'nativeFabricUIManager' in global;
13
12
  }
@@ -41,7 +40,13 @@ function ScreenStack(props) {
41
40
  gestureDetectorBridge.current.stackUseEffectCallback(ref);
42
41
  }
43
42
  });
44
- return /*#__PURE__*/React.createElement(NativeScreenStack, _extends({}, rest, {
43
+ return /*#__PURE__*/React.createElement(ScreenStackNativeComponent, _extends({}, rest, {
44
+ /**
45
+ * This messy override is to conform NativeProps used by codegen and
46
+ * our Public API. To see reasoning go to this PR:
47
+ * https://github.com/software-mansion/react-native-screens/pull/2423#discussion_r1810616995
48
+ */
49
+ onFinishTransitioning: props.onFinishTransitioning,
45
50
  ref: ref
46
51
  }), childrenWithFreeze);
47
52
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","React","freezeEnabled","DelayedFreeze","ScreenStackNativeComponent","NativeScreenStack","isFabric","global","ScreenStack","props","children","gestureDetectorBridge","rest","ref","useRef","size","Children","count","childrenWithFreeze","map","child","index","descriptor","descriptors","isFreezeEnabled","options","freezeOnBlur","freezePreviousScreen","createElement","freeze","useEffect","current","stackUseEffectCallback"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":"AAAA,YAAY;;AAAC,SAAAA,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAEb,OAAOQ,KAAK,MAAM,OAAO;AAEzB,SAASC,aAAa,QAAQ,SAAS;AACvC,OAAOC,aAAa,MAAM,yBAAyB;;AAEnD;AACA,OAAOC,0BAA0B,MAAM,sCAAsC;AAC7E,MAAMC,iBAAwD,GAC5DD,0BAAiC;AAEnC,SAASE,QAAQA,CAAA,EAAG;EAClB,OAAO,uBAAuB,IAAIC,MAAM;AAC1C;AAEA,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC5C,MAAM;IAAEC,QAAQ;IAAEC,qBAAqB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC1D,MAAMI,GAAG,GAAGZ,KAAK,CAACa,MAAM,CAAC,IAAI,CAAC;EAC9B,MAAMC,IAAI,GAAGd,KAAK,CAACe,QAAQ,CAACC,KAAK,CAACP,QAAQ,CAAC;EAC3C;EACA,MAAMQ,kBAAkB,GAAGjB,KAAK,CAACe,QAAQ,CAACG,GAAG,CAACT,QAAQ,EAAE,CAACU,KAAK,EAAEC,KAAK,KAAK;IACxE;IACA,MAAM;MAAEZ,KAAK;MAAEb;IAAI,CAAC,GAAGwB,KAAK;IAC5B,MAAME,UAAU,GAAGb,KAAK,EAAEa,UAAU,IAAIb,KAAK,EAAEc,WAAW,GAAG3B,GAAG,CAAC;IACjE,MAAM4B,eAAe,GACnBF,UAAU,EAAEG,OAAO,EAAEC,YAAY,IAAIxB,aAAa,CAAC,CAAC;;IAEtD;IACA;IACA,MAAMyB,oBAAoB,GAAGrB,QAAQ,CAAC,CAAC,GACnCS,IAAI,GAAGM,KAAK,GAAG,CAAC,GAChBN,IAAI,GAAGM,KAAK,GAAG,CAAC;IAEpB,oBACEpB,KAAA,CAAA2B,aAAA,CAACzB,aAAa;MAAC0B,MAAM,EAAEL,eAAe,IAAIG;IAAqB,GAC5DP,KACY,CAAC;EAEpB,CAAC,CAAC;EAEFnB,KAAK,CAAC6B,SAAS,CAAC,MAAM;IACpB,IAAInB,qBAAqB,EAAE;MACzBA,qBAAqB,CAACoB,OAAO,CAACC,sBAAsB,CAACnB,GAAG,CAAC;IAC3D;EACF,CAAC,CAAC;EACF,oBACEZ,KAAA,CAAA2B,aAAA,CAACvB,iBAAiB,EAAAlB,QAAA,KAAKyB,IAAI;IAAEC,GAAG,EAAEA;EAAI,IACnCK,kBACgB,CAAC;AAExB;AAEA,eAAeV,WAAW"}
1
+ {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","React","freezeEnabled","DelayedFreeze","ScreenStackNativeComponent","isFabric","global","ScreenStack","props","children","gestureDetectorBridge","rest","ref","useRef","size","Children","count","childrenWithFreeze","map","child","index","descriptor","descriptors","isFreezeEnabled","options","freezeOnBlur","freezePreviousScreen","createElement","freeze","useEffect","current","stackUseEffectCallback","onFinishTransitioning"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":"AAAA,YAAY;;AAAC,SAAAA,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAEb,OAAOQ,KAAK,MAAM,OAAO;AAEzB,SAASC,aAAa,QAAQ,SAAS;AACvC,OAAOC,aAAa,MAAM,yBAAyB;;AAEnD;AACA,OAAOC,0BAA0B,MAE1B,sCAAsC;AAE7C,SAASC,QAAQA,CAAA,EAAG;EAClB,OAAO,uBAAuB,IAAIC,MAAM;AAC1C;AAEA,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC5C,MAAM;IAAEC,QAAQ;IAAEC,qBAAqB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC1D,MAAMI,GAAG,GAAGX,KAAK,CAACY,MAAM,CAAC,IAAI,CAAC;EAC9B,MAAMC,IAAI,GAAGb,KAAK,CAACc,QAAQ,CAACC,KAAK,CAACP,QAAQ,CAAC;EAC3C;EACA,MAAMQ,kBAAkB,GAAGhB,KAAK,CAACc,QAAQ,CAACG,GAAG,CAACT,QAAQ,EAAE,CAACU,KAAK,EAAEC,KAAK,KAAK;IACxE;IACA,MAAM;MAAEZ,KAAK;MAAEZ;IAAI,CAAC,GAAGuB,KAAK;IAC5B,MAAME,UAAU,GAAGb,KAAK,EAAEa,UAAU,IAAIb,KAAK,EAAEc,WAAW,GAAG1B,GAAG,CAAC;IACjE,MAAM2B,eAAe,GACnBF,UAAU,EAAEG,OAAO,EAAEC,YAAY,IAAIvB,aAAa,CAAC,CAAC;;IAEtD;IACA;IACA,MAAMwB,oBAAoB,GAAGrB,QAAQ,CAAC,CAAC,GACnCS,IAAI,GAAGM,KAAK,GAAG,CAAC,GAChBN,IAAI,GAAGM,KAAK,GAAG,CAAC;IAEpB,oBACEnB,KAAA,CAAA0B,aAAA,CAACxB,aAAa;MAACyB,MAAM,EAAEL,eAAe,IAAIG;IAAqB,GAC5DP,KACY,CAAC;EAEpB,CAAC,CAAC;EAEFlB,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAInB,qBAAqB,EAAE;MACzBA,qBAAqB,CAACoB,OAAO,CAACC,sBAAsB,CAACnB,GAAG,CAAC;IAC3D;EACF,CAAC,CAAC;EACF,oBACEX,KAAA,CAAA0B,aAAA,CAACvB,0BAA0B,EAAAjB,QAAA,KACrBwB,IAAI;IACR;AACN;AACA;AACA;AACA;IACMqB,qBAAqB,EACnBxB,KAAK,CAACwB,qBACP;IACDpB,GAAG,EAAEA;EAAI,IACRK,kBACyB,CAAC;AAEjC;AAEA,eAAeV,WAAW"}
@@ -2,18 +2,18 @@
2
2
 
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  import React from 'react';
5
- import { Image, StyleSheet } from 'react-native';
5
+ import { Image, Platform, StyleSheet } from 'react-native';
6
6
 
7
7
  // Native components
8
8
  import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
9
9
  import ScreenStackHeaderSubviewNativeComponent from '../fabric/ScreenStackHeaderSubviewNativeComponent';
10
10
  export const ScreenStackHeaderSubview = ScreenStackHeaderSubviewNativeComponent;
11
- export function ScreenStackHeaderConfig(props) {
12
- return /*#__PURE__*/React.createElement(ScreenStackHeaderConfigNativeComponent, _extends({}, props, {
13
- style: styles.headerConfig,
14
- pointerEvents: "box-none"
15
- }));
16
- }
11
+ export const ScreenStackHeaderConfig = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScreenStackHeaderConfigNativeComponent, _extends({}, props, {
12
+ ref: ref,
13
+ style: styles.headerConfig,
14
+ pointerEvents: "box-none"
15
+ })));
16
+ ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
17
17
  export const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, {
18
18
  type: "back",
19
19
  style: styles.headerSubview
@@ -73,7 +73,9 @@ const styles = StyleSheet.create({
73
73
  width: '100%',
74
74
  flexDirection: 'row',
75
75
  justifyContent: 'space-between',
76
- alignItems: 'center'
76
+ // We only want to center align the subviews on iOS.
77
+ // See https://github.com/software-mansion/react-native-screens/pull/2456
78
+ alignItems: Platform.OS === 'ios' ? 'center' : undefined
77
79
  }
78
80
  });
79
81
  //# sourceMappingURL=ScreenStackHeaderConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","React","Image","StyleSheet","ScreenStackHeaderConfigNativeComponent","ScreenStackHeaderSubviewNativeComponent","ScreenStackHeaderSubview","ScreenStackHeaderConfig","props","createElement","style","styles","headerConfig","pointerEvents","ScreenStackHeaderBackButtonImage","type","headerSubview","resizeMode","fadeDuration","ScreenStackHeaderRightView","rest","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","headerSubviewCenter","ScreenStackHeaderSearchBarView","create","flexDirection","alignItems","justifyContent","flexShrink","position","top","width"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","React","Image","Platform","StyleSheet","ScreenStackHeaderConfigNativeComponent","ScreenStackHeaderSubviewNativeComponent","ScreenStackHeaderSubview","ScreenStackHeaderConfig","forwardRef","props","ref","createElement","style","styles","headerConfig","pointerEvents","displayName","ScreenStackHeaderBackButtonImage","type","headerSubview","resizeMode","fadeDuration","ScreenStackHeaderRightView","rest","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","headerSubviewCenter","ScreenStackHeaderSearchBarView","create","flexDirection","alignItems","justifyContent","flexShrink","position","top","width","OS","undefined"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import * as React from 'react';
3
+ import { Platform, StyleSheet } from 'react-native';
4
+ import warnOnce from 'warn-once';
5
+ import DebugContainer from './DebugContainer';
6
+ import { ScreenStackHeaderConfig } from './ScreenStackHeaderConfig';
7
+ import Screen from './Screen';
8
+ import ScreenStack from './ScreenStack';
9
+ function ScreenStackItem(_ref, ref) {
10
+ let {
11
+ children,
12
+ headerConfig,
13
+ activityState,
14
+ stackPresentation,
15
+ contentStyle,
16
+ ...rest
17
+ } = _ref;
18
+ const isHeaderInModal = Platform.OS === 'android' ? false : stackPresentation !== 'push' && headerConfig?.hidden === false;
19
+ const headerHiddenPreviousRef = React.useRef(headerConfig?.hidden);
20
+ React.useEffect(() => {
21
+ warnOnce(Platform.OS !== 'android' && stackPresentation !== 'push' && headerHiddenPreviousRef.current !== headerConfig?.hidden, `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`);
22
+ headerHiddenPreviousRef.current = headerConfig?.hidden;
23
+ }, [headerConfig?.hidden, stackPresentation]);
24
+ const content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DebugContainer, {
25
+ style: [stackPresentation === 'formSheet' ? Platform.OS === 'ios' ? styles.absolute : null : styles.container, contentStyle],
26
+ stackPresentation: stackPresentation ?? 'push'
27
+ }, children), /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, headerConfig));
28
+ return /*#__PURE__*/React.createElement(Screen, _extends({
29
+ ref: ref,
30
+ enabled: true,
31
+ isNativeStack: true,
32
+ activityState: activityState,
33
+ stackPresentation: stackPresentation,
34
+ hasLargeHeader: headerConfig?.largeTitle ?? false
35
+ }, rest), isHeaderInModal ? /*#__PURE__*/React.createElement(ScreenStack, {
36
+ style: styles.container
37
+ }, /*#__PURE__*/React.createElement(Screen, {
38
+ enabled: true,
39
+ isNativeStack: true,
40
+ activityState: activityState,
41
+ hasLargeHeader: headerConfig?.largeTitle ?? false,
42
+ style: StyleSheet.absoluteFill
43
+ }, content)) : content);
44
+ }
45
+ export default /*#__PURE__*/React.forwardRef(ScreenStackItem);
46
+ const styles = StyleSheet.create({
47
+ container: {
48
+ flex: 1
49
+ },
50
+ absolute: {
51
+ position: 'absolute',
52
+ top: 0,
53
+ start: 0,
54
+ end: 0
55
+ }
56
+ });
57
+ //# sourceMappingURL=ScreenStackItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Platform","StyleSheet","warnOnce","DebugContainer","ScreenStackHeaderConfig","Screen","ScreenStack","ScreenStackItem","_ref","ref","children","headerConfig","activityState","stackPresentation","contentStyle","rest","isHeaderInModal","OS","hidden","headerHiddenPreviousRef","useRef","useEffect","current","content","createElement","Fragment","style","styles","absolute","container","_extends","enabled","isNativeStack","hasLargeHeader","largeTitle","absoluteFill","forwardRef","create","flex","position","top","start","end"],"sourceRoot":"../../../src","sources":["components/ScreenStackItem.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EAERC,UAAU,QAGL,cAAc;AACrB,OAAOC,QAAQ,MAAM,WAAW;AAEhC,OAAOC,cAAc,MAAM,kBAAkB;AAE7C,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,WAAW,MAAM,eAAe;AAUvC,SAASC,eAAeA,CAAAC,IAAA,EAOdC,GAA6B,EAAE;EAAA,IAPhB;IACvBC,QAAQ;IACRC,YAAY;IACZC,aAAa;IACbC,iBAAiB;IACjBC,YAAY;IACZ,GAAGC;EACE,CAAC,GAAAP,IAAA;EACN,MAAMQ,eAAe,GACnBhB,QAAQ,CAACiB,EAAE,KAAK,SAAS,GACrB,KAAK,GACLJ,iBAAiB,KAAK,MAAM,IAAIF,YAAY,EAAEO,MAAM,KAAK,KAAK;EAEpE,MAAMC,uBAAuB,GAAGpB,KAAK,CAACqB,MAAM,CAACT,YAAY,EAAEO,MAAM,CAAC;EAElEnB,KAAK,CAACsB,SAAS,CAAC,MAAM;IACpBnB,QAAQ,CACNF,QAAQ,CAACiB,EAAE,KAAK,SAAS,IACvBJ,iBAAiB,KAAK,MAAM,IAC5BM,uBAAuB,CAACG,OAAO,KAAKX,YAAY,EAAEO,MAAM,EACzD,qHACH,CAAC;IAEDC,uBAAuB,CAACG,OAAO,GAAGX,YAAY,EAAEO,MAAM;EACxD,CAAC,EAAE,CAACP,YAAY,EAAEO,MAAM,EAAEL,iBAAiB,CAAC,CAAC;EAE7C,MAAMU,OAAO,gBACXxB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,qBACE1B,KAAA,CAAAyB,aAAA,CAACrB,cAAc;IACbuB,KAAK,EAAE,CACLb,iBAAiB,KAAK,WAAW,GAC7Bb,QAAQ,CAACiB,EAAE,KAAK,KAAK,GACnBU,MAAM,CAACC,QAAQ,GACf,IAAI,GACND,MAAM,CAACE,SAAS,EACpBf,YAAY,CACZ;IACFD,iBAAiB,EAAEA,iBAAiB,IAAI;EAAO,GAE9CH,QACa,CAAC,eAYjBX,KAAA,CAAAyB,aAAA,CAACpB,uBAAuB,EAAKO,YAAe,CAC5C,CACH;EAED,oBACEZ,KAAA,CAAAyB,aAAA,CAACnB,MAAM,EAAAyB,QAAA;IACLrB,GAAG,EAAEA,GAAI;IACTsB,OAAO;IACPC,aAAa;IACbpB,aAAa,EAAEA,aAAc;IAC7BC,iBAAiB,EAAEA,iBAAkB;IACrCoB,cAAc,EAAEtB,YAAY,EAAEuB,UAAU,IAAI;EAAM,GAC9CnB,IAAI,GAEPC,eAAe,gBACdjB,KAAA,CAAAyB,aAAA,CAAClB,WAAW;IAACoB,KAAK,EAAEC,MAAM,CAACE;EAAU,gBACnC9B,KAAA,CAAAyB,aAAA,CAACnB,MAAM;IACL0B,OAAO;IACPC,aAAa;IACbpB,aAAa,EAAEA,aAAc;IAC7BqB,cAAc,EAAEtB,YAAY,EAAEuB,UAAU,IAAI,KAAM;IAClDR,KAAK,EAAEzB,UAAU,CAACkC;EAAa,GAE9BZ,OACK,CACG,CAAC,GAEdA,OAEI,CAAC;AAEb;AAEA,4BAAexB,KAAK,CAACqC,UAAU,CAAC7B,eAAe,CAAC;AAEhD,MAAMoB,MAAM,GAAG1B,UAAU,CAACoC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,IAAI,EAAE;EACR,CAAC;EACDV,QAAQ,EAAE;IACRW,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP;AACF,CAAC,CAAC"}
@@ -13,6 +13,7 @@ export { ScreenStackHeaderConfig, ScreenStackHeaderSubview, ScreenStackHeaderLef
13
13
  export { default as SearchBar } from './components/SearchBar';
14
14
  export { default as ScreenContainer } from './components/ScreenContainer';
15
15
  export { default as ScreenStack } from './components/ScreenStack';
16
+ export { default as ScreenStackItem } from './components/ScreenStackItem';
16
17
  export { default as FullWindowOverlay } from './components/FullWindowOverlay';
17
18
  export { default as ScreenFooter } from './components/ScreenFooter';
18
19
  export { default as ScreenContentWrapper } from './components/ScreenContentWrapper';
@@ -1 +1 @@
1
- {"version":3,"names":["enableScreens","enableFreeze","screensEnabled","freezeEnabled","default","Screen","InnerScreen","ScreenContext","ScreenStackHeaderConfig","ScreenStackHeaderSubview","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderRightView","ScreenStackHeaderBackButtonImage","ScreenStackHeaderSearchBarView","SearchBar","ScreenContainer","ScreenStack","FullWindowOverlay","ScreenFooter","ScreenContentWrapper","GHContext","isSearchBarAvailableForCurrentPlatform","compatibilityFlags","executeNativeBackPress","useTransitionProgress"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,SAAS;;AAEvB;AACA;AACA;AACA,SACEA,aAAa,EACbC,YAAY,EACZC,cAAc,EACdC,aAAa,QACR,QAAQ;;AAEf;AACA;AACA;AACA,SACEC,OAAO,IAAIC,MAAM,EACjBC,WAAW,EACXC,aAAa,QACR,qBAAqB;AAE5B,SACEC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,QACzB,sCAAsC;AAE7C,SAASV,OAAO,IAAIW,SAAS,QAAQ,wBAAwB;AAC7D,SAASX,OAAO,IAAIY,eAAe,QAAQ,8BAA8B;AACzE,SAASZ,OAAO,IAAIa,WAAW,QAAQ,0BAA0B;AACjE,SAASb,OAAO,IAAIc,iBAAiB,QAAQ,gCAAgC;AAC7E,SAASd,OAAO,IAAIe,YAAY,QAAQ,2BAA2B;AACnE,SAASf,OAAO,IAAIgB,oBAAoB,QAAQ,mCAAmC;;AAEnF;AACA;AACA;AACA,SAASC,SAAS,QAAQ,mCAAmC;;AAE7D;AACA;AACA;AACA,SACEC,sCAAsC,EACtCC,kBAAkB,EAClBC,sBAAsB,QACjB,SAAS;;AAEhB;AACA;AACA;AACA,SAASpB,OAAO,IAAIqB,qBAAqB,QAAQ,yBAAyB"}
1
+ {"version":3,"names":["enableScreens","enableFreeze","screensEnabled","freezeEnabled","default","Screen","InnerScreen","ScreenContext","ScreenStackHeaderConfig","ScreenStackHeaderSubview","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderRightView","ScreenStackHeaderBackButtonImage","ScreenStackHeaderSearchBarView","SearchBar","ScreenContainer","ScreenStack","ScreenStackItem","FullWindowOverlay","ScreenFooter","ScreenContentWrapper","GHContext","isSearchBarAvailableForCurrentPlatform","compatibilityFlags","executeNativeBackPress","useTransitionProgress"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,SAAS;;AAEvB;AACA;AACA;AACA,SACEA,aAAa,EACbC,YAAY,EACZC,cAAc,EACdC,aAAa,QACR,QAAQ;;AAEf;AACA;AACA;AACA,SACEC,OAAO,IAAIC,MAAM,EACjBC,WAAW,EACXC,aAAa,QACR,qBAAqB;AAE5B,SACEC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,QACzB,sCAAsC;AAE7C,SAASV,OAAO,IAAIW,SAAS,QAAQ,wBAAwB;AAC7D,SAASX,OAAO,IAAIY,eAAe,QAAQ,8BAA8B;AACzE,SAASZ,OAAO,IAAIa,WAAW,QAAQ,0BAA0B;AACjE,SAASb,OAAO,IAAIc,eAAe,QAAQ,8BAA8B;AACzE,SAASd,OAAO,IAAIe,iBAAiB,QAAQ,gCAAgC;AAC7E,SAASf,OAAO,IAAIgB,YAAY,QAAQ,2BAA2B;AACnE,SAAShB,OAAO,IAAIiB,oBAAoB,QAAQ,mCAAmC;;AAEnF;AACA;AACA;AACA,SAASC,SAAS,QAAQ,mCAAmC;;AAE7D;AACA;AACA;AACA,SACEC,sCAAsC,EACtCC,kBAAkB,EAClBC,sBAAsB,QACjB,SAAS;;AAEhB;AACA;AACA;AACA,SAASrB,OAAO,IAAIsB,qBAAqB,QAAQ,yBAAyB"}
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ import { StackPresentationTypes } from '../types';
4
+ type ContainerProps = ViewProps & {
5
+ stackPresentation: StackPresentationTypes;
6
+ children: React.ReactNode;
7
+ };
8
+ /**
9
+ * This view must *not* be flattened.
10
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
11
+ * for detailed explanation.
12
+ */
13
+ declare let DebugContainer: React.ComponentType<ContainerProps>;
14
+ export default DebugContainer;
15
+ //# sourceMappingURL=DebugContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugContainer.d.ts","sourceRoot":"","sources":["../../../src/components/DebugContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,cAAc,GAAG,SAAS,GAAG;IAChC,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,QAAA,IAAI,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAErD,CAAA;AA0BD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ export default function DebugContainer(props: ViewProps): React.JSX.Element;
4
+ //# sourceMappingURL=DebugContainer.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugContainer.web.d.ts","sourceRoot":"","sources":["../../../src/components/DebugContainer.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,SAAS,qBAEtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenStack.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenStack.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa5C,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAmC3C;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ScreenStack.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenStack.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAa5C,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBA6C3C;AAED,eAAe,WAAW,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { HeaderSubviewTypes, ScreenStackHeaderConfigProps, SearchBarProps } from '../types';
3
- import { ImageProps, ViewProps } from 'react-native';
3
+ import { ImageProps, View, ViewProps } from 'react-native';
4
4
  export declare const ScreenStackHeaderSubview: React.ComponentType<React.PropsWithChildren<ViewProps & {
5
5
  type?: HeaderSubviewTypes;
6
6
  }>>;
7
- export declare function ScreenStackHeaderConfig(props: ScreenStackHeaderConfigProps): React.JSX.Element;
7
+ export declare const ScreenStackHeaderConfig: React.ForwardRefExoticComponent<ScreenStackHeaderConfigProps & React.RefAttributes<View>>;
8
8
  export declare const ScreenStackHeaderBackButtonImage: (props: ImageProps) => JSX.Element;
9
9
  export declare const ScreenStackHeaderRightView: (props: React.PropsWithChildren<ViewProps>) => JSX.Element;
10
10
  export declare const ScreenStackHeaderLeftView: (props: React.PropsWithChildren<ViewProps>) => JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenStackHeaderConfig.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenStackHeaderConfig.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAS,UAAU,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAMxE,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,aAAa,CACxD,KAAK,CAAC,iBAAiB,CAAC,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAClB,CAAC;AAEnD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,KAAK,CAAC,GAAG,CAAC,OAAO,CAQnB;AAED,eAAO,MAAM,gCAAgC,UACpC,UAAU,KAChB,WAIF,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAC9B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAC7B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAC/B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,8BAA8B,UAClC,MAAM,iBAAiB,CAAC,cAAc,CAAC,KAC7C,WAMF,CAAC"}
1
+ {"version":3,"file":"ScreenStackHeaderConfig.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenStackHeaderConfig.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,UAAU,EAGV,IAAI,EACJ,SAAS,EACV,MAAM,cAAc,CAAC;AAMtB,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,aAAa,CACxD,KAAK,CAAC,iBAAiB,CAAC,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAClB,CAAC;AAEnD,eAAO,MAAM,uBAAuB,2FAUlC,CAAC;AAIH,eAAO,MAAM,gCAAgC,UACpC,UAAU,KAChB,WAIF,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAC9B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAC7B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAC/B,MAAM,iBAAiB,CAAC,SAAS,CAAC,KACxC,WAUF,CAAC;AAEF,eAAO,MAAM,8BAA8B,UAClC,MAAM,iBAAiB,CAAC,cAAc,CAAC,KAC7C,WAMF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewStyle, View } from 'react-native';
3
+ import { ScreenProps, ScreenStackHeaderConfigProps } from '../types';
4
+ type Props = Omit<ScreenProps, 'enabled' | 'isNativeStack' | 'hasLargeHeader'> & {
5
+ headerConfig?: ScreenStackHeaderConfigProps;
6
+ contentStyle?: StyleProp<ViewStyle>;
7
+ };
8
+ declare const _default: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<View>>;
9
+ export default _default;
10
+ //# sourceMappingURL=ScreenStackItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenStackItem.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenStackItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,IAAI,EACL,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAKrE,KAAK,KAAK,GAAG,IAAI,CACf,WAAW,EACX,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAC/C,GAAG;IACF,YAAY,CAAC,EAAE,4BAA4B,CAAC;IAC5C,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC,CAAC;;AAuFF,wBAAiD"}
@@ -2,7 +2,7 @@
2
2
  import type { ViewProps } from 'react-native';
3
3
  import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
4
4
  type FinishTransitioningEvent = Readonly<{}>;
5
- interface NativeProps extends ViewProps {
5
+ export interface NativeProps extends ViewProps {
6
6
  onFinishTransitioning?: DirectEventHandler<FinishTransitioningEvent>;
7
7
  }
8
8
  declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenStackNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/ScreenStackNativeComponent.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,KAAK,wBAAwB,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE7C,UAAU,WAAY,SAAQ,SAAS;IACrC,qBAAqB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;CACtE;;AAED,wBAAyE"}
1
+ {"version":3,"file":"ScreenStackNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/ScreenStackNativeComponent.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,KAAK,wBAAwB,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,qBAAqB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;CACtE;;AAED,wBAAyE"}
@@ -11,6 +11,7 @@ export { ScreenStackHeaderConfig, ScreenStackHeaderSubview, ScreenStackHeaderLef
11
11
  export { default as SearchBar } from './components/SearchBar';
12
12
  export { default as ScreenContainer } from './components/ScreenContainer';
13
13
  export { default as ScreenStack } from './components/ScreenStack';
14
+ export { default as ScreenStackItem } from './components/ScreenStackItem';
14
15
  export { default as FullWindowOverlay } from './components/FullWindowOverlay';
15
16
  export { default as ScreenFooter } from './components/ScreenFooter';
16
17
  export { default as ScreenContentWrapper } from './components/ScreenContentWrapper';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB;;GAEG;AACH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D;;GAEG;AACH,OAAO,EACL,sCAAsC,EACtC,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB;;GAEG;AACH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,OAAO,EACL,OAAO,IAAI,MAAM,EACjB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D;;GAEG;AACH,OAAO,EACL,sCAAsC,EACtC,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screens",
3
- "version": "4.0.0-beta.14",
3
+ "version": "4.0.0-beta.15",
4
4
  "description": "Native navigation primitives for your React Native app.",
5
5
  "scripts": {
6
6
  "submodules": "git submodule update --init --recursive && (cd react-navigation && yarn)",
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { Platform, type ViewProps } from 'react-native';
3
+ // @ts-expect-error importing private component
4
+ // eslint-disable-next-line import/namespace, import/default, import/no-named-as-default, import/no-named-as-default-member
5
+ import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
6
+ import ScreenContentWrapper from './ScreenContentWrapper';
7
+ import { StackPresentationTypes } from '../types';
8
+
9
+ type ContainerProps = ViewProps & {
10
+ stackPresentation: StackPresentationTypes;
11
+ children: React.ReactNode;
12
+ };
13
+
14
+ /**
15
+ * This view must *not* be flattened.
16
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
17
+ * for detailed explanation.
18
+ */
19
+ let DebugContainer: React.ComponentType<ContainerProps> = (props) => {
20
+ return <ScreenContentWrapper {...props} />;
21
+ }
22
+
23
+ if (process.env.NODE_ENV !== 'production') {
24
+ // eslint-disable-next-line react/display-name
25
+ DebugContainer = (props: ContainerProps) => {
26
+ const { stackPresentation, ...rest } = props;
27
+
28
+ if (
29
+ Platform.OS === 'ios' &&
30
+ stackPresentation !== 'push' &&
31
+ stackPresentation !== 'formSheet'
32
+ ) {
33
+ // This is necessary for LogBox
34
+ return (
35
+ <AppContainer>
36
+ <ScreenContentWrapper {...rest} />
37
+ </AppContainer>
38
+ );
39
+ }
40
+
41
+ return <ScreenContentWrapper {...rest} />;
42
+ };
43
+
44
+ DebugContainer.displayName = 'DebugContainer';
45
+ }
46
+
47
+ export default DebugContainer;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ import ScreenContentWrapper from './ScreenContentWrapper';
4
+
5
+ export default function DebugContainer(props: ViewProps) {
6
+ return <ScreenContentWrapper {...props} />;
7
+ }
@@ -6,9 +6,9 @@ import { freezeEnabled } from '../core';
6
6
  import DelayedFreeze from './helpers/DelayedFreeze';
7
7
 
8
8
  // Native components
9
- import ScreenStackNativeComponent from '../fabric/ScreenStackNativeComponent';
10
- const NativeScreenStack: React.ComponentType<ScreenStackProps> =
11
- ScreenStackNativeComponent as any;
9
+ import ScreenStackNativeComponent, {
10
+ NativeProps,
11
+ } from '../fabric/ScreenStackNativeComponent';
12
12
 
13
13
  function isFabric() {
14
14
  return 'nativeFabricUIManager' in global;
@@ -45,9 +45,19 @@ function ScreenStack(props: ScreenStackProps) {
45
45
  }
46
46
  });
47
47
  return (
48
- <NativeScreenStack {...rest} ref={ref}>
48
+ <ScreenStackNativeComponent
49
+ {...rest}
50
+ /**
51
+ * This messy override is to conform NativeProps used by codegen and
52
+ * our Public API. To see reasoning go to this PR:
53
+ * https://github.com/software-mansion/react-native-screens/pull/2423#discussion_r1810616995
54
+ */
55
+ onFinishTransitioning={
56
+ props.onFinishTransitioning as NativeProps['onFinishTransitioning']
57
+ }
58
+ ref={ref}>
49
59
  {childrenWithFreeze}
50
- </NativeScreenStack>
60
+ </ScreenStackNativeComponent>
51
61
  );
52
62
  }
53
63
 
@@ -6,7 +6,14 @@ import {
6
6
  ScreenStackHeaderConfigProps,
7
7
  SearchBarProps,
8
8
  } from '../types';
9
- import { Image, ImageProps, StyleSheet, ViewProps } from 'react-native';
9
+ import {
10
+ Image,
11
+ ImageProps,
12
+ Platform,
13
+ StyleSheet,
14
+ View,
15
+ ViewProps,
16
+ } from 'react-native';
10
17
 
11
18
  // Native components
12
19
  import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
@@ -16,17 +23,19 @@ export const ScreenStackHeaderSubview: React.ComponentType<
16
23
  React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>
17
24
  > = ScreenStackHeaderSubviewNativeComponent as any;
18
25
 
19
- export function ScreenStackHeaderConfig(
20
- props: ScreenStackHeaderConfigProps,
21
- ): React.JSX.Element {
22
- return (
23
- <ScreenStackHeaderConfigNativeComponent
24
- {...props}
25
- style={styles.headerConfig}
26
- pointerEvents="box-none"
27
- />
28
- );
29
- }
26
+ export const ScreenStackHeaderConfig = React.forwardRef<
27
+ View,
28
+ ScreenStackHeaderConfigProps
29
+ >((props, ref) => (
30
+ <ScreenStackHeaderConfigNativeComponent
31
+ {...props}
32
+ ref={ref}
33
+ style={styles.headerConfig}
34
+ pointerEvents="box-none"
35
+ />
36
+ ));
37
+
38
+ ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
30
39
 
31
40
  export const ScreenStackHeaderBackButtonImage = (
32
41
  props: ImageProps,
@@ -106,6 +115,8 @@ const styles = StyleSheet.create({
106
115
  width: '100%',
107
116
  flexDirection: 'row',
108
117
  justifyContent: 'space-between',
109
- alignItems: 'center',
118
+ // We only want to center align the subviews on iOS.
119
+ // See https://github.com/software-mansion/react-native-screens/pull/2456
120
+ alignItems: Platform.OS === 'ios' ? 'center' : undefined,
110
121
  },
111
122
  });
@@ -0,0 +1,122 @@
1
+ import * as React from 'react';
2
+ import {
3
+ Platform,
4
+ type StyleProp,
5
+ StyleSheet,
6
+ type ViewStyle,
7
+ View,
8
+ } from 'react-native';
9
+ import warnOnce from 'warn-once';
10
+
11
+ import DebugContainer from './DebugContainer';
12
+ import { ScreenProps, ScreenStackHeaderConfigProps } from '../types';
13
+ import { ScreenStackHeaderConfig } from './ScreenStackHeaderConfig';
14
+ import Screen from './Screen';
15
+ import ScreenStack from './ScreenStack';
16
+
17
+ type Props = Omit<
18
+ ScreenProps,
19
+ 'enabled' | 'isNativeStack' | 'hasLargeHeader'
20
+ > & {
21
+ headerConfig?: ScreenStackHeaderConfigProps;
22
+ contentStyle?: StyleProp<ViewStyle>;
23
+ };
24
+
25
+ function ScreenStackItem({
26
+ children,
27
+ headerConfig,
28
+ activityState,
29
+ stackPresentation,
30
+ contentStyle,
31
+ ...rest
32
+ }: Props, ref: React.ForwardedRef<View>) {
33
+ const isHeaderInModal =
34
+ Platform.OS === 'android'
35
+ ? false
36
+ : stackPresentation !== 'push' && headerConfig?.hidden === false;
37
+
38
+ const headerHiddenPreviousRef = React.useRef(headerConfig?.hidden);
39
+
40
+ React.useEffect(() => {
41
+ warnOnce(
42
+ Platform.OS !== 'android' &&
43
+ stackPresentation !== 'push' &&
44
+ headerHiddenPreviousRef.current !== headerConfig?.hidden,
45
+ `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`
46
+ );
47
+
48
+ headerHiddenPreviousRef.current = headerConfig?.hidden;
49
+ }, [headerConfig?.hidden, stackPresentation]);
50
+
51
+ const content = (
52
+ <>
53
+ <DebugContainer
54
+ style={[
55
+ stackPresentation === 'formSheet'
56
+ ? Platform.OS === 'ios'
57
+ ? styles.absolute
58
+ : null
59
+ : styles.container,
60
+ contentStyle,
61
+ ]}
62
+ stackPresentation={stackPresentation ?? 'push'}
63
+ >
64
+ {children}
65
+ </DebugContainer>
66
+ {/**
67
+ * `HeaderConfig` needs to be the direct child of `Screen` without any intermediate `View`
68
+ * We don't render it conditionally based on visibility to make it possible to dynamically render a custom `header`
69
+ * Otherwise dynamically rendering a custom `header` leaves the native header visible
70
+ *
71
+ * https://github.com/software-mansion/react-native-screens/blob/main/guides/GUIDE_FOR_LIBRARY_AUTHORS.md#screenstackheaderconfig
72
+ *
73
+ * HeaderConfig must not be first child of a Screen.
74
+ * See https://github.com/software-mansion/react-native-screens/pull/1825
75
+ * for detailed explanation.
76
+ */}
77
+ <ScreenStackHeaderConfig {...headerConfig} />
78
+ </>
79
+ );
80
+
81
+ return (
82
+ <Screen
83
+ ref={ref}
84
+ enabled
85
+ isNativeStack
86
+ activityState={activityState}
87
+ stackPresentation={stackPresentation}
88
+ hasLargeHeader={headerConfig?.largeTitle ?? false}
89
+ {...rest}
90
+ >
91
+ {isHeaderInModal ? (
92
+ <ScreenStack style={styles.container}>
93
+ <Screen
94
+ enabled
95
+ isNativeStack
96
+ activityState={activityState}
97
+ hasLargeHeader={headerConfig?.largeTitle ?? false}
98
+ style={StyleSheet.absoluteFill}
99
+ >
100
+ {content}
101
+ </Screen>
102
+ </ScreenStack>
103
+ ) : (
104
+ content
105
+ )}
106
+ </Screen>
107
+ );
108
+ }
109
+
110
+ export default React.forwardRef(ScreenStackItem);
111
+
112
+ const styles = StyleSheet.create({
113
+ container: {
114
+ flex: 1,
115
+ },
116
+ absolute: {
117
+ position: 'absolute',
118
+ top: 0,
119
+ start: 0,
120
+ end: 0,
121
+ },
122
+ });
@@ -7,7 +7,7 @@ import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTyp
7
7
  // eslint-disable-next-line @typescript-eslint/ban-types
8
8
  type FinishTransitioningEvent = Readonly<{}>;
9
9
 
10
- interface NativeProps extends ViewProps {
10
+ export interface NativeProps extends ViewProps {
11
11
  onFinishTransitioning?: DirectEventHandler<FinishTransitioningEvent>;
12
12
  }
13
13
 
package/src/index.tsx CHANGED
@@ -32,6 +32,7 @@ export {
32
32
  export { default as SearchBar } from './components/SearchBar';
33
33
  export { default as ScreenContainer } from './components/ScreenContainer';
34
34
  export { default as ScreenStack } from './components/ScreenStack';
35
+ export { default as ScreenStackItem } from './components/ScreenStackItem';
35
36
  export { default as FullWindowOverlay } from './components/FullWindowOverlay';
36
37
  export { default as ScreenFooter } from './components/ScreenFooter';
37
38
  export { default as ScreenContentWrapper } from './components/ScreenContentWrapper';