react-native-screens 4.19.0-nightly-20251029-460569215 → 4.19.0-nightly-20251030-193c63f33

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.
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _SplitViewHostNativeComponent = _interopRequireDefault(require("../../../fabric/gamma/SplitViewHostNativeComponent"));
10
+ var _SplitViewScreen = _interopRequireDefault(require("./SplitViewScreen"));
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
12
13
  // According to the UIKit documentation: https://developer.apple.com/documentation/uikit/uisplitviewcontroller/displaymode-swift.enum
@@ -44,7 +45,20 @@ function SplitViewHost(props) {
44
45
  }
45
46
  }
46
47
  }, [preferredDisplayMode, preferredSplitBehavior]);
47
- return /*#__PURE__*/_react.default.createElement(_SplitViewHostNativeComponent.default, _extends({}, props, {
48
+ const children = _react.default.Children.toArray(props.children);
49
+ const columns = children.filter(
50
+ // @ts-ignore - type is valid attribute for child
51
+ child => child.type === _SplitViewScreen.default.Column);
52
+ const inspectors = children.filter(
53
+ // @ts-ignore - type is valid attribute for child
54
+ child => child.type === _SplitViewScreen.default.Inspector);
55
+ return /*#__PURE__*/_react.default.createElement(_SplitViewHostNativeComponent.default
56
+ // UISplitViewController requires the number of columns to be specified at initialization and it cannot be changed dynamically later.
57
+ // By using a specific key in this form, we can detect changes in the number of React children.
58
+ // This enables us to fully recreate the SplitView when necessary, ensuring the correct column configuration is always applied.
59
+ , _extends({
60
+ key: `columns-${columns.length}-inspectors-${inspectors.length}`
61
+ }, props, {
48
62
  style: styles.container
49
63
  }), props.children);
50
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SplitViewHostNativeComponent","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","displayModeForSplitViewCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitViewHost","props","preferredDisplayMode","preferredSplitBehavior","React","useEffect","isValid","validDisplayModes","console","warn","join","createElement","style","styles","container","children","StyleSheet","create","flex","_default","exports"],"sourceRoot":"../../../../../src","sources":["components/gamma/split-view/SplitViewHost.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA8F,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAO9F;AACA;AACA;AACA;AACA,MAAMO,uCAGL,GAAG;EACFC,IAAI,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;EACnEC,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;EAClEC,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;EACzEC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,MAAMC,kCAAkC,GAAGA,CACzCC,WAAiC,EACjCC,aAAqC,KAClC;EACH,IAAIA,aAAa,KAAK,WAAW,EAAE;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAOP,uCAAuC,CAACO,aAAa,CAAC,CAACC,QAAQ,CACpEF,WACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,SAASG,aAAaA,CAACC,KAAyB,EAAE;EAChD,MAAM;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAGF,KAAK;EAE9DG,cAAK,CAACC,SAAS,CAAC,MAAM;IACpB,IAAIH,oBAAoB,IAAIC,sBAAsB,EAAE;MAClD,MAAMG,OAAO,GAAGV,kCAAkC,CAChDM,oBAAoB,EACpBC,sBACF,CAAC;MACD,IAAI,CAACG,OAAO,EAAE;QACZ,MAAMC,iBAAiB,GACrBhB,uCAAuC,CAACY,sBAAsB,CAAC;QACjEK,OAAO,CAACC,IAAI,CACV,yBAAyBP,oBAAoB,yBAAyBC,sBAAsB,IAAI,GAC9F,sBAAsBA,sBAAsB,UAAUI,iBAAiB,CAACG,IAAI,CAC1E,IACF,CAAC,GACL,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAACR,oBAAoB,EAAEC,sBAAsB,CAAC,CAAC;EAElD,oBACEhC,MAAA,CAAAO,OAAA,CAAAiC,aAAA,CAACpC,6BAAA,CAAAG,OAA4B,EAAAC,QAAA,KAAKsB,KAAK;IAAEW,KAAK,EAAEC,MAAM,CAACC;EAAU,IAC9Db,KAAK,CAACc,QACqB,CAAC;AAEnC;AAEA,MAAMF,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA1C,OAAA,GAEYsB,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SplitViewHostNativeComponent","_SplitViewScreen","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","displayModeForSplitViewCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitViewHost","props","preferredDisplayMode","preferredSplitBehavior","React","useEffect","isValid","validDisplayModes","console","warn","join","children","Children","toArray","columns","filter","child","type","SplitViewScreen","Column","inspectors","Inspector","createElement","key","style","styles","container","StyleSheet","create","flex","_default","exports"],"sourceRoot":"../../../../../src","sources":["components/gamma/split-view/SplitViewHost.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,8 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React from 'react';
3
3
  import { StyleSheet } from 'react-native';
4
4
  import SplitViewHostNativeComponent from '../../../fabric/gamma/SplitViewHostNativeComponent';
5
+ import SplitViewScreen from './SplitViewScreen';
6
+
5
7
  // According to the UIKit documentation: https://developer.apple.com/documentation/uikit/uisplitviewcontroller/displaymode-swift.enum
6
8
  // Only specific pairs for displayMode - splitBehavior are valid and others may lead to unexpected results.
7
9
  // Therefore, we're adding check on the JS side to return a feedback to the client when that pairing isn't valid.
@@ -37,7 +39,20 @@ function SplitViewHost(props) {
37
39
  }
38
40
  }
39
41
  }, [preferredDisplayMode, preferredSplitBehavior]);
40
- return /*#__PURE__*/React.createElement(SplitViewHostNativeComponent, _extends({}, props, {
42
+ const children = React.Children.toArray(props.children);
43
+ const columns = children.filter(
44
+ // @ts-ignore - type is valid attribute for child
45
+ child => child.type === SplitViewScreen.Column);
46
+ const inspectors = children.filter(
47
+ // @ts-ignore - type is valid attribute for child
48
+ child => child.type === SplitViewScreen.Inspector);
49
+ return /*#__PURE__*/React.createElement(SplitViewHostNativeComponent
50
+ // UISplitViewController requires the number of columns to be specified at initialization and it cannot be changed dynamically later.
51
+ // By using a specific key in this form, we can detect changes in the number of React children.
52
+ // This enables us to fully recreate the SplitView when necessary, ensuring the correct column configuration is always applied.
53
+ , _extends({
54
+ key: `columns-${columns.length}-inspectors-${inspectors.length}`
55
+ }, props, {
41
56
  style: styles.container
42
57
  }), props.children);
43
58
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","SplitViewHostNativeComponent","displayModeForSplitViewCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitViewHost","props","preferredDisplayMode","preferredSplitBehavior","useEffect","isValid","validDisplayModes","console","warn","join","createElement","_extends","style","styles","container","children","create","flex"],"sourceRoot":"../../../../../src","sources":["components/gamma/split-view/SplitViewHost.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,4BAA4B,MAAM,oDAAoD;AAO7F;AACA;AACA;AACA;AACA,MAAMC,uCAGL,GAAG;EACFC,IAAI,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;EACnEC,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;EAClEC,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;EACzEC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,MAAMC,kCAAkC,GAAGA,CACzCC,WAAiC,EACjCC,aAAqC,KAClC;EACH,IAAIA,aAAa,KAAK,WAAW,EAAE;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAOP,uCAAuC,CAACO,aAAa,CAAC,CAACC,QAAQ,CACpEF,WACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,SAASG,aAAaA,CAACC,KAAyB,EAAE;EAChD,MAAM;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAGF,KAAK;EAE9Db,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB,IAAIF,oBAAoB,IAAIC,sBAAsB,EAAE;MAClD,MAAME,OAAO,GAAGT,kCAAkC,CAChDM,oBAAoB,EACpBC,sBACF,CAAC;MACD,IAAI,CAACE,OAAO,EAAE;QACZ,MAAMC,iBAAiB,GACrBf,uCAAuC,CAACY,sBAAsB,CAAC;QACjEI,OAAO,CAACC,IAAI,CACV,yBAAyBN,oBAAoB,yBAAyBC,sBAAsB,IAAI,GAC9F,sBAAsBA,sBAAsB,UAAUG,iBAAiB,CAACG,IAAI,CAC1E,IACF,CAAC,GACL,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAACP,oBAAoB,EAAEC,sBAAsB,CAAC,CAAC;EAElD,oBACEf,KAAA,CAAAsB,aAAA,CAACpB,4BAA4B,EAAAqB,QAAA,KAAKV,KAAK;IAAEW,KAAK,EAAEC,MAAM,CAACC;EAAU,IAC9Db,KAAK,CAACc,QACqB,CAAC;AAEnC;AAEA,MAAMF,MAAM,GAAGxB,UAAU,CAAC2B,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAejB,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","SplitViewHostNativeComponent","SplitViewScreen","displayModeForSplitViewCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitViewHost","props","preferredDisplayMode","preferredSplitBehavior","useEffect","isValid","validDisplayModes","console","warn","join","children","Children","toArray","columns","filter","child","type","Column","inspectors","Inspector","createElement","_extends","key","length","style","styles","container","create","flex"],"sourceRoot":"../../../../../src","sources":["components/gamma/split-view/SplitViewHost.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,4BAA4B,MAAM,oDAAoD;AAM7F,OAAOC,eAAe,MAAM,mBAAmB;;AAE/C;AACA;AACA;AACA;AACA,MAAMC,uCAGL,GAAG;EACFC,IAAI,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;EACnEC,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;EAClEC,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;EACzEC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,MAAMC,kCAAkC,GAAGA,CACzCC,WAAiC,EACjCC,aAAqC,KAClC;EACH,IAAIA,aAAa,KAAK,WAAW,EAAE;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAOP,uCAAuC,CAACO,aAAa,CAAC,CAACC,QAAQ,CACpEF,WACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,SAASG,aAAaA,CAACC,KAAyB,EAAE;EAChD,MAAM;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAGF,KAAK;EAE9Dd,KAAK,CAACiB,SAAS,CAAC,MAAM;IACpB,IAAIF,oBAAoB,IAAIC,sBAAsB,EAAE;MAClD,MAAME,OAAO,GAAGT,kCAAkC,CAChDM,oBAAoB,EACpBC,sBACF,CAAC;MACD,IAAI,CAACE,OAAO,EAAE;QACZ,MAAMC,iBAAiB,GACrBf,uCAAuC,CAACY,sBAAsB,CAAC;QACjEI,OAAO,CAACC,IAAI,CACV,yBAAyBN,oBAAoB,yBAAyBC,sBAAsB,IAAI,GAC9F,sBAAsBA,sBAAsB,UAAUG,iBAAiB,CAACG,IAAI,CAC1E,IACF,CAAC,GACL,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAACP,oBAAoB,EAAEC,sBAAsB,CAAC,CAAC;EAElD,MAAMO,QAAQ,GAAGvB,KAAK,CAACwB,QAAQ,CAACC,OAAO,CAACX,KAAK,CAACS,QAAQ,CAAC;EAEvD,MAAMG,OAAO,GAAGH,QAAQ,CAACI,MAAM;EAC7B;EACAC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAK1B,eAAe,CAAC2B,MAC1C,CAAC;EAED,MAAMC,UAAU,GAAGR,QAAQ,CAACI,MAAM;EAChC;EACAC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAK1B,eAAe,CAAC6B,SAC1C,CAAC;EAED,oBACEhC,KAAA,CAAAiC,aAAA,CAAC/B;EACC;EACA;EACA;EAAA,EAAAgC,QAAA;IACAC,GAAG,EAAE,WAAWT,OAAO,CAACU,MAAM,eAAeL,UAAU,CAACK,MAAM;EAAG,GAC7DtB,KAAK;IACTuB,KAAK,EAAEC,MAAM,CAACC;EAAU,IACvBzB,KAAK,CAACS,QACqB,CAAC;AAEnC;AAEA,MAAMe,MAAM,GAAGrC,UAAU,CAACuC,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAe5B,aAAa","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitViewHost.d.ts","sourceRoot":"","sources":["../../../../../src/components/gamma/split-view/SplitViewHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AA6B/B;;GAEG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA2B/C;AAQD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SplitViewHost.d.ts","sourceRoot":"","sources":["../../../../../src/components/gamma/split-view/SplitViewHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AA8B/B;;GAEG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA6C/C;AAQD,eAAe,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screens",
3
- "version": "4.19.0-nightly-20251029-460569215",
3
+ "version": "4.19.0-nightly-20251030-193c63f33",
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 && yarn build && cd ../)",
@@ -6,6 +6,7 @@ import type {
6
6
  SplitViewHostProps,
7
7
  SplitViewSplitBehavior,
8
8
  } from './SplitViewHost.types';
9
+ import SplitViewScreen from './SplitViewScreen';
9
10
 
10
11
  // According to the UIKit documentation: https://developer.apple.com/documentation/uikit/uisplitviewcontroller/displaymode-swift.enum
11
12
  // Only specific pairs for displayMode - splitBehavior are valid and others may lead to unexpected results.
@@ -59,8 +60,26 @@ function SplitViewHost(props: SplitViewHostProps) {
59
60
  }
60
61
  }, [preferredDisplayMode, preferredSplitBehavior]);
61
62
 
63
+ const children = React.Children.toArray(props.children);
64
+
65
+ const columns = children.filter(
66
+ // @ts-ignore - type is valid attribute for child
67
+ child => child.type === SplitViewScreen.Column,
68
+ );
69
+
70
+ const inspectors = children.filter(
71
+ // @ts-ignore - type is valid attribute for child
72
+ child => child.type === SplitViewScreen.Inspector,
73
+ );
74
+
62
75
  return (
63
- <SplitViewHostNativeComponent {...props} style={styles.container}>
76
+ <SplitViewHostNativeComponent
77
+ // UISplitViewController requires the number of columns to be specified at initialization and it cannot be changed dynamically later.
78
+ // By using a specific key in this form, we can detect changes in the number of React children.
79
+ // This enables us to fully recreate the SplitView when necessary, ensuring the correct column configuration is always applied.
80
+ key={`columns-${columns.length}-inspectors-${inspectors.length}`}
81
+ {...props}
82
+ style={styles.container}>
64
83
  {props.children}
65
84
  </SplitViewHostNativeComponent>
66
85
  );