@react-navigation/core 7.0.0-rc.7 → 7.0.0-rc.9

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.
@@ -113,27 +113,35 @@ function createComponentForStaticNavigation(tree, displayName) {
113
113
  if (screens == null && groups == null) {
114
114
  throw new Error("Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.");
115
115
  }
116
- const items = screens ? getItemsFromScreens(Screen, screens) : [];
117
- if (groups) {
118
- items.push(...Object.entries(groups).map(([key, {
119
- if: useIf,
120
- ...group
121
- }]) => {
122
- const groupItems = getItemsFromScreens(Screen, group.screens);
123
- return () => {
124
- // Call unconditionally since screen configs may contain `useIf` hooks
125
- const children = groupItems.map(item => item());
126
- const shouldRender = useIf == null || useIf();
127
- if (!shouldRender) {
128
- return null;
129
- }
130
- return /*#__PURE__*/(0, _react.createElement)(Group, {
131
- navigationKey: key,
132
- ...group,
133
- key: key
134
- }, children);
135
- };
136
- }));
116
+ const items = [];
117
+
118
+ // Loop through the config to find screens and groups
119
+ // So we add the screens and groups in the same order as they are defined
120
+ for (const key in config) {
121
+ if (key === 'screens' && screens) {
122
+ items.push(...getItemsFromScreens(Screen, screens));
123
+ }
124
+ if (key === 'groups' && groups) {
125
+ items.push(...Object.entries(groups).map(([key, {
126
+ if: useIf,
127
+ ...group
128
+ }]) => {
129
+ const groupItems = getItemsFromScreens(Screen, group.screens);
130
+ return () => {
131
+ // Call unconditionally since screen configs may contain `useIf` hooks
132
+ const children = groupItems.map(item => item());
133
+ const shouldRender = useIf == null || useIf();
134
+ if (!shouldRender) {
135
+ return null;
136
+ }
137
+ return /*#__PURE__*/(0, _react.createElement)(Group, {
138
+ navigationKey: key,
139
+ ...group,
140
+ key: key
141
+ }, children);
142
+ };
143
+ }));
144
+ }
137
145
  }
138
146
  const NavigatorComponent = () => {
139
147
  const children = items.map(item => item());
@@ -219,11 +227,19 @@ function createPathConfigForStaticNavigation(tree, options, auto) {
219
227
  return [key, screenConfig];
220
228
  }).filter(([, screen]) => Object.keys(screen).length > 0));
221
229
  };
222
- const screens = t.config.screens ? createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName) : {};
223
- if (t.config.groups) {
224
- Object.entries(t.config.groups).forEach(([, group]) => {
225
- Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
226
- });
230
+ const screens = {};
231
+
232
+ // Loop through the config to find screens and groups
233
+ // So we add the screens and groups in the same order as they are defined
234
+ for (const key in t.config) {
235
+ if (key === 'screens' && t.config.screens) {
236
+ Object.assign(screens, createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName));
237
+ }
238
+ if (key === 'groups' && t.config.groups) {
239
+ Object.entries(t.config.groups).forEach(([, group]) => {
240
+ Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
241
+ });
242
+ }
227
243
  }
228
244
  if (Object.keys(screens).length === 0) {
229
245
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactIs","_useRoute","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MemoizedScreen","memo","component","route","useRoute","children","createElement","getItemsFromScreens","Screen","screens","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","isValidElementType","createComponentForStaticNavigation","Error","element","jsx","shouldRender","tree","displayName","Navigator","Group","config","groups","items","push","key","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","b","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactIs","_useRoute","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MemoizedScreen","memo","component","route","useRoute","children","createElement","getItemsFromScreens","Screen","screens","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","isValidElementType","createComponentForStaticNavigation","Error","element","jsx","shouldRender","tree","displayName","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","b","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useIsFocused = useIsFocused;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var React = _react;
7
+ var React = _interopRequireWildcard(require("react"));
9
8
  var _useNavigation = require("./useNavigation.cjs");
10
9
  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
10
  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 && {}.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; }
@@ -15,25 +14,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
15
14
  */
16
15
  function useIsFocused() {
17
16
  const navigation = (0, _useNavigation.useNavigation)();
18
- const [isFocused, setIsFocused] = (0, _react.useState)(navigation.isFocused);
19
- const valueToReturn = navigation.isFocused();
20
- if (isFocused !== valueToReturn) {
21
- // If the value has changed since the last render, we need to update it.
22
- // This could happen if we missed an update from the event listeners during re-render.
23
- // React will process this update immediately, so the old subscription value won't be committed.
24
- // It is still nice to avoid returning a mismatched value though, so let's override the return value.
25
- // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription
26
- setIsFocused(valueToReturn);
27
- }
28
- React.useEffect(() => {
29
- const unsubscribeFocus = navigation.addListener('focus', () => setIsFocused(true));
30
- const unsubscribeBlur = navigation.addListener('blur', () => setIsFocused(false));
17
+ const subscribe = React.useCallback(callback => {
18
+ const unsubscribeFocus = navigation.addListener('focus', callback);
19
+ const unsubscribeBlur = navigation.addListener('blur', callback);
31
20
  return () => {
32
21
  unsubscribeFocus();
33
22
  unsubscribeBlur();
34
23
  };
35
24
  }, [navigation]);
36
- React.useDebugValue(valueToReturn);
37
- return valueToReturn;
25
+ const value = React.useSyncExternalStore(subscribe, navigation.isFocused, navigation.isFocused);
26
+ return value;
38
27
  }
39
28
  //# sourceMappingURL=useIsFocused.cjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_useNavigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useIsFocused","navigation","useNavigation","isFocused","setIsFocused","useState","valueToReturn","useEffect","unsubscribeFocus","addListener","unsubscribeBlur","useDebugValue"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,IAAAC,KAAA,GAAAH,MAAA;AAG/B,IAAAI,cAAA,GAAAF,OAAA;AAAgD,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,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhD;AACA;AACA;AACA;AACO,SAASW,YAAYA,CAAA,EAAY;EACtC,MAAMC,UAAU,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAClC,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAACJ,UAAU,CAACE,SAAS,CAAC;EAEhE,MAAMG,aAAa,GAAGL,UAAU,CAACE,SAAS,CAAC,CAAC;EAE5C,IAAIA,SAAS,KAAKG,aAAa,EAAE;IAC/B;IACA;IACA;IACA;IACA;IACAF,YAAY,CAACE,aAAa,CAAC;EAC7B;EAEA5B,KAAK,CAAC6B,SAAS,CAAC,MAAM;IACpB,MAAMC,gBAAgB,GAAGP,UAAU,CAACQ,WAAW,CAAC,OAAO,EAAE,MACvDL,YAAY,CAAC,IAAI,CACnB,CAAC;IAED,MAAMM,eAAe,GAAGT,UAAU,CAACQ,WAAW,CAAC,MAAM,EAAE,MACrDL,YAAY,CAAC,KAAK,CACpB,CAAC;IAED,OAAO,MAAM;MACXI,gBAAgB,CAAC,CAAC;MAClBE,eAAe,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,CAACT,UAAU,CAAC,CAAC;EAEhBvB,KAAK,CAACiC,aAAa,CAACL,aAAa,CAAC;EAElC,OAAOA,aAAa;AACtB","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_useNavigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useIsFocused","navigation","useNavigation","subscribe","useCallback","callback","unsubscribeFocus","addListener","unsubscribeBlur","value","useSyncExternalStore","isFocused"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAAgD,SAAAE,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,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhD;AACA;AACA;AACA;AACO,SAASW,YAAYA,CAAA,EAAY;EACtC,MAAMC,UAAU,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAElC,MAAMC,SAAS,GAAG3B,KAAK,CAAC4B,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,gBAAgB,GAAGL,UAAU,CAACM,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAClE,MAAMG,eAAe,GAAGP,UAAU,CAACM,WAAW,CAAC,MAAM,EAAEF,QAAQ,CAAC;IAEhE,OAAO,MAAM;MACXC,gBAAgB,CAAC,CAAC;MAClBE,eAAe,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EACD,CAACP,UAAU,CACb,CAAC;EAED,MAAMQ,KAAK,GAAGjC,KAAK,CAACkC,oBAAoB,CACtCP,SAAS,EACTF,UAAU,CAACU,SAAS,EACpBV,UAAU,CAACU,SACb,CAAC;EAED,OAAOF,KAAK;AACd","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useNavigationState = useNavigationState;
7
7
  var React = _interopRequireWildcard(require("react"));
8
+ var _withSelector = require("use-sync-external-store/with-selector");
8
9
  var _useNavigation = require("./useNavigation.cjs");
9
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); }
10
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 && {}.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; }
@@ -15,22 +16,11 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
15
16
  */
16
17
  function useNavigationState(selector) {
17
18
  const navigation = (0, _useNavigation.useNavigation)();
18
-
19
- // We don't care about the state value, we run the selector again at the end
20
- // The state is only to make sure that there's a re-render when we have a new value
21
- const [, setResult] = React.useState(() => selector(navigation.getState()));
22
-
23
- // We store the selector in a ref to avoid re-subscribing listeners every render
24
- const selectorRef = React.useRef(selector);
25
- React.useEffect(() => {
26
- selectorRef.current = selector;
27
- });
28
- React.useEffect(() => {
29
- const unsubscribe = navigation.addListener('state', e => {
30
- setResult(selectorRef.current(e.data.state));
31
- });
19
+ const subscribe = React.useCallback(callback => {
20
+ const unsubscribe = navigation.addListener('state', callback);
32
21
  return unsubscribe;
33
22
  }, [navigation]);
34
- return selector(navigation.getState());
23
+ const value = (0, _withSelector.useSyncExternalStoreWithSelector)(subscribe, navigation.getState, navigation.getState, selector);
24
+ return value;
35
25
  }
36
26
  //# sourceMappingURL=useNavigationState.cjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_useNavigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useNavigationState","selector","navigation","useNavigation","setResult","useState","getState","selectorRef","useRef","useEffect","current","unsubscribe","addListener","data","state"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,cAAA,GAAAD,OAAA;AAAgD,SAAAE,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,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAMhD;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAG,IAAAC,4BAAa,EAA4B,CAAC;;EAE7D;EACA;EACA,MAAM,GAAGC,SAAS,CAAC,GAAG5B,KAAK,CAAC6B,QAAQ,CAAC,MAAMJ,QAAQ,CAACC,UAAU,CAACI,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAE3E;EACA,MAAMC,WAAW,GAAG/B,KAAK,CAACgC,MAAM,CAACP,QAAQ,CAAC;EAE1CzB,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpBF,WAAW,CAACG,OAAO,GAAGT,QAAQ;EAChC,CAAC,CAAC;EAEFzB,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB,MAAME,WAAW,GAAGT,UAAU,CAACU,WAAW,CAAC,OAAO,EAAG/B,CAAC,IAAK;MACzDuB,SAAS,CAACG,WAAW,CAACG,OAAO,CAAC7B,CAAC,CAACgC,IAAI,CAACC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAOH,WAAW;EACpB,CAAC,EAAE,CAACT,UAAU,CAAC,CAAC;EAEhB,OAAOD,QAAQ,CAACC,UAAU,CAACI,QAAQ,CAAC,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_withSelector","_useNavigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useNavigationState","selector","navigation","useNavigation","subscribe","useCallback","callback","unsubscribe","addListener","value","useSyncExternalStoreWithSelector","getState"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAGA,IAAAE,cAAA,GAAAF,OAAA;AAAgD,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,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAMhD;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAG,IAAAC,4BAAa,EAA4B,CAAC;EAE7D,MAAMC,SAAS,GAAG7B,KAAK,CAAC8B,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,WAAW,GAAGL,UAAU,CAACM,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAE7D,OAAOC,WAAW;EACpB,CAAC,EACD,CAACL,UAAU,CACb,CAAC;EAED,MAAMO,KAAK,GAAG,IAAAC,8CAAgC,EAC5CN,SAAS,EACTF,UAAU,CAACS,QAAQ,EACnBT,UAAU,CAACS,QAAQ,EACnBV,QACF,CAAC;EAED,OAAOQ,KAAK;AACd","ignoreList":[]}
@@ -104,27 +104,35 @@ export function createComponentForStaticNavigation(tree, displayName) {
104
104
  if (screens == null && groups == null) {
105
105
  throw new Error("Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.");
106
106
  }
107
- const items = screens ? getItemsFromScreens(Screen, screens) : [];
108
- if (groups) {
109
- items.push(...Object.entries(groups).map(([key, {
110
- if: useIf,
111
- ...group
112
- }]) => {
113
- const groupItems = getItemsFromScreens(Screen, group.screens);
114
- return () => {
115
- // Call unconditionally since screen configs may contain `useIf` hooks
116
- const children = groupItems.map(item => item());
117
- const shouldRender = useIf == null || useIf();
118
- if (!shouldRender) {
119
- return null;
120
- }
121
- return /*#__PURE__*/_createElement(Group, {
122
- navigationKey: key,
123
- ...group,
124
- key: key
125
- }, children);
126
- };
127
- }));
107
+ const items = [];
108
+
109
+ // Loop through the config to find screens and groups
110
+ // So we add the screens and groups in the same order as they are defined
111
+ for (const key in config) {
112
+ if (key === 'screens' && screens) {
113
+ items.push(...getItemsFromScreens(Screen, screens));
114
+ }
115
+ if (key === 'groups' && groups) {
116
+ items.push(...Object.entries(groups).map(([key, {
117
+ if: useIf,
118
+ ...group
119
+ }]) => {
120
+ const groupItems = getItemsFromScreens(Screen, group.screens);
121
+ return () => {
122
+ // Call unconditionally since screen configs may contain `useIf` hooks
123
+ const children = groupItems.map(item => item());
124
+ const shouldRender = useIf == null || useIf();
125
+ if (!shouldRender) {
126
+ return null;
127
+ }
128
+ return /*#__PURE__*/_createElement(Group, {
129
+ navigationKey: key,
130
+ ...group,
131
+ key: key
132
+ }, children);
133
+ };
134
+ }));
135
+ }
128
136
  }
129
137
  const NavigatorComponent = () => {
130
138
  const children = items.map(item => item());
@@ -210,11 +218,19 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
210
218
  return [key, screenConfig];
211
219
  }).filter(([, screen]) => Object.keys(screen).length > 0));
212
220
  };
213
- const screens = t.config.screens ? createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName) : {};
214
- if (t.config.groups) {
215
- Object.entries(t.config.groups).forEach(([, group]) => {
216
- Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
217
- });
221
+ const screens = {};
222
+
223
+ // Loop through the config to find screens and groups
224
+ // So we add the screens and groups in the same order as they are defined
225
+ for (const key in t.config) {
226
+ if (key === 'screens' && t.config.screens) {
227
+ Object.assign(screens, createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName));
228
+ }
229
+ if (key === 'groups' && t.config.groups) {
230
+ Object.entries(t.config.groups).forEach(([, group]) => {
231
+ Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
232
+ });
233
+ }
218
234
  }
219
235
  if (Object.keys(screens).length === 0) {
220
236
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","createElement","_createElement","MemoizedScreen","memo","component","route","children","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","tree","displayName","Navigator","Group","config","groups","items","push","key","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","a","b","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","createElement","_createElement","MemoizedScreen","memo","component","route","children","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","tree","displayName","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","a","b","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { useState } from 'react';
3
2
  import { useNavigation } from "./useNavigation.mjs";
4
3
 
5
4
  /**
@@ -8,25 +7,15 @@ import { useNavigation } from "./useNavigation.mjs";
8
7
  */
9
8
  export function useIsFocused() {
10
9
  const navigation = useNavigation();
11
- const [isFocused, setIsFocused] = useState(navigation.isFocused);
12
- const valueToReturn = navigation.isFocused();
13
- if (isFocused !== valueToReturn) {
14
- // If the value has changed since the last render, we need to update it.
15
- // This could happen if we missed an update from the event listeners during re-render.
16
- // React will process this update immediately, so the old subscription value won't be committed.
17
- // It is still nice to avoid returning a mismatched value though, so let's override the return value.
18
- // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription
19
- setIsFocused(valueToReturn);
20
- }
21
- React.useEffect(() => {
22
- const unsubscribeFocus = navigation.addListener('focus', () => setIsFocused(true));
23
- const unsubscribeBlur = navigation.addListener('blur', () => setIsFocused(false));
10
+ const subscribe = React.useCallback(callback => {
11
+ const unsubscribeFocus = navigation.addListener('focus', callback);
12
+ const unsubscribeBlur = navigation.addListener('blur', callback);
24
13
  return () => {
25
14
  unsubscribeFocus();
26
15
  unsubscribeBlur();
27
16
  };
28
17
  }, [navigation]);
29
- React.useDebugValue(valueToReturn);
30
- return valueToReturn;
18
+ const value = React.useSyncExternalStore(subscribe, navigation.isFocused, navigation.isFocused);
19
+ return value;
31
20
  }
32
21
  //# sourceMappingURL=useIsFocused.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useNavigation","useIsFocused","navigation","isFocused","setIsFocused","valueToReturn","useEffect","unsubscribeFocus","addListener","unsubscribeBlur","useDebugValue"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,OAAO;AAEhC,SAASC,aAAa,QAAQ,qBAAiB;;AAE/C;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAA,EAAY;EACtC,MAAMC,UAAU,GAAGF,aAAa,CAAC,CAAC;EAClC,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAACG,UAAU,CAACC,SAAS,CAAC;EAEhE,MAAME,aAAa,GAAGH,UAAU,CAACC,SAAS,CAAC,CAAC;EAE5C,IAAIA,SAAS,KAAKE,aAAa,EAAE;IAC/B;IACA;IACA;IACA;IACA;IACAD,YAAY,CAACC,aAAa,CAAC;EAC7B;EAEAP,KAAK,CAACQ,SAAS,CAAC,MAAM;IACpB,MAAMC,gBAAgB,GAAGL,UAAU,CAACM,WAAW,CAAC,OAAO,EAAE,MACvDJ,YAAY,CAAC,IAAI,CACnB,CAAC;IAED,MAAMK,eAAe,GAAGP,UAAU,CAACM,WAAW,CAAC,MAAM,EAAE,MACrDJ,YAAY,CAAC,KAAK,CACpB,CAAC;IAED,OAAO,MAAM;MACXG,gBAAgB,CAAC,CAAC;MAClBE,eAAe,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,CAACP,UAAU,CAAC,CAAC;EAEhBJ,KAAK,CAACY,aAAa,CAACL,aAAa,CAAC;EAElC,OAAOA,aAAa;AACtB","ignoreList":[]}
1
+ {"version":3,"names":["React","useNavigation","useIsFocused","navigation","subscribe","useCallback","callback","unsubscribeFocus","addListener","unsubscribeBlur","value","useSyncExternalStore","isFocused"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,qBAAiB;;AAE/C;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAA,EAAY;EACtC,MAAMC,UAAU,GAAGF,aAAa,CAAC,CAAC;EAElC,MAAMG,SAAS,GAAGJ,KAAK,CAACK,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,gBAAgB,GAAGJ,UAAU,CAACK,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAClE,MAAMG,eAAe,GAAGN,UAAU,CAACK,WAAW,CAAC,MAAM,EAAEF,QAAQ,CAAC;IAEhE,OAAO,MAAM;MACXC,gBAAgB,CAAC,CAAC;MAClBE,eAAe,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EACD,CAACN,UAAU,CACb,CAAC;EAED,MAAMO,KAAK,GAAGV,KAAK,CAACW,oBAAoB,CACtCP,SAAS,EACTD,UAAU,CAACS,SAAS,EACpBT,UAAU,CAACS,SACb,CAAC;EAED,OAAOF,KAAK;AACd","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
2
3
  import { useNavigation } from "./useNavigation.mjs";
3
4
  /**
4
5
  * Hook to get a value from the current navigation state using a selector.
@@ -7,22 +8,11 @@ import { useNavigation } from "./useNavigation.mjs";
7
8
  */
8
9
  export function useNavigationState(selector) {
9
10
  const navigation = useNavigation();
10
-
11
- // We don't care about the state value, we run the selector again at the end
12
- // The state is only to make sure that there's a re-render when we have a new value
13
- const [, setResult] = React.useState(() => selector(navigation.getState()));
14
-
15
- // We store the selector in a ref to avoid re-subscribing listeners every render
16
- const selectorRef = React.useRef(selector);
17
- React.useEffect(() => {
18
- selectorRef.current = selector;
19
- });
20
- React.useEffect(() => {
21
- const unsubscribe = navigation.addListener('state', e => {
22
- setResult(selectorRef.current(e.data.state));
23
- });
11
+ const subscribe = React.useCallback(callback => {
12
+ const unsubscribe = navigation.addListener('state', callback);
24
13
  return unsubscribe;
25
14
  }, [navigation]);
26
- return selector(navigation.getState());
15
+ const value = useSyncExternalStoreWithSelector(subscribe, navigation.getState, navigation.getState, selector);
16
+ return value;
27
17
  }
28
18
  //# sourceMappingURL=useNavigationState.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useNavigation","useNavigationState","selector","navigation","setResult","useState","getState","selectorRef","useRef","useEffect","current","unsubscribe","addListener","e","data","state"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,aAAa,QAAQ,qBAAiB;AAM/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAGH,aAAa,CAA4B,CAAC;;EAE7D;EACA;EACA,MAAM,GAAGI,SAAS,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAAC,MAAMH,QAAQ,CAACC,UAAU,CAACG,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAE3E;EACA,MAAMC,WAAW,GAAGR,KAAK,CAACS,MAAM,CAACN,QAAQ,CAAC;EAE1CH,KAAK,CAACU,SAAS,CAAC,MAAM;IACpBF,WAAW,CAACG,OAAO,GAAGR,QAAQ;EAChC,CAAC,CAAC;EAEFH,KAAK,CAACU,SAAS,CAAC,MAAM;IACpB,MAAME,WAAW,GAAGR,UAAU,CAACS,WAAW,CAAC,OAAO,EAAGC,CAAC,IAAK;MACzDT,SAAS,CAACG,WAAW,CAACG,OAAO,CAACG,CAAC,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAOJ,WAAW;EACpB,CAAC,EAAE,CAACR,UAAU,CAAC,CAAC;EAEhB,OAAOD,QAAQ,CAACC,UAAU,CAACG,QAAQ,CAAC,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"names":["React","useSyncExternalStoreWithSelector","useNavigation","useNavigationState","selector","navigation","subscribe","useCallback","callback","unsubscribe","addListener","value","getState"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,gCAAgC,QAAQ,uCAAuC;AAGxF,SAASC,aAAa,QAAQ,qBAAiB;AAM/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAGH,aAAa,CAA4B,CAAC;EAE7D,MAAMI,SAAS,GAAGN,KAAK,CAACO,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,WAAW,GAAGJ,UAAU,CAACK,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAE7D,OAAOC,WAAW;EACpB,CAAC,EACD,CAACJ,UAAU,CACb,CAAC;EAED,MAAMM,KAAK,GAAGV,gCAAgC,CAC5CK,SAAS,EACTD,UAAU,CAACO,QAAQ,EACnBP,UAAU,CAACO,QAAQ,EACnBR,QACF,CAAC;EAED,OAAOO,KAAK;AACd","ignoreList":[]}
@@ -183,8 +183,6 @@ type TreeForPathConfig = {
183
183
  */
184
184
  export declare function createPathConfigForStaticNavigation(tree: TreeForPathConfig, options?: {
185
185
  initialRouteName?: string;
186
- }, auto?: boolean): {
187
- [k: string]: PathConfig<ParamListBase>;
188
- } | undefined;
186
+ }, auto?: boolean): {} | undefined;
189
187
  export {};
190
188
  //# sourceMappingURL=StaticNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACH,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAEhD;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAC7E,CAAC,EAAE,MAAM,CAAC,KACP,IAAI,GACL,CAAC,GACD,KAAK,CAAC;AAEV,KAAK,kBAAkB,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AAE/D,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC3C,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC7D,GACG,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAC3D,CAAC,GACD,SAAS,CAAC;AAEhB,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,GAC3E,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,GAC/D,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACvC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACrD,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,KAAK,mBAAmB,CAAC,OAAO,IAAI;KACjC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CACxD,CAAC;AAEF,KAAK,kBAAkB,CACrB,MAAM,SACF,QAAQ,CAAC;IACP,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,mBAAmB,CAC1B,aAAa,EACb,eAAe,EACf,EAAE,EACF,YAAY,EACZ,GAAG,CACJ,CAAC;KACH,CAAC;CACH,CAAC,GACF,SAAS,IACX,MAAM,SAAS;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,mBAAmB,CAC1B,aAAa,EACb,eAAe,EACf,EAAE,EACF,YAAY,EACZ,GAAG,CACJ,CAAC;KACH,CAAC;CACH,GACG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACzE,EAAE,CAAC;AAEP,KAAK,iBAAiB,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,UAAU,IACR,gBAAgB,CAClB,SAAS,EACT,MAAM,EACN,KAAK,EACL,aAAa,EACb,QAAQ,EACR,UAAU,CACX,GACC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7C,KAAK,mBAAmB,CACtB,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,SAAS,kBAAkB,CAAC,SAAS,CAAC,IAClD;KACD,SAAS,IAAI,MAAM,SAAS,GACzB,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GACxB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/B,CAAC,IAAI,CACH,iBAAiB,CACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CAAC,SAAS,CAAC,CAC1B,EACD,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,CACnD,GAAG;QACF;;;;;;;;;;;WAWG;QACH,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC;QACnB;;;;;;;;;;;WAWG;QACH,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QACzC;;WAEG;QACH,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KACpE,CAAC;CACP,CAAC;AAEF,KAAK,WAAW,CACd,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,SAAS,kBAAkB,CAAC,SAAS,CAAC,IAClD,IAAI,CACN,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,MAAM,SAAS,CAAC,CAAC,EAC3E,SAAS,GAAG,UAAU,CACvB,GAAG;IACF;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAC1B,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,oBAAoB,IACvD,oBAAoB,CAClB,GAAG,CAAC,WAAW,CAAC,EAChB,GAAG,CAAC,aAAa,CAAC,EAClB,GAAG,CAAC,OAAO,CAAC,EACZ,GAAG,CAAC,eAAe,CAAC,EACpB,GAAG,CAAC,UAAU,CAAC,EACf,GAAG,CAAC,gBAAgB,CAAC,EACrB,GAAG,CAAC,WAAW,CAAC,CACjB,CAAC;AAEJ,KAAK,oBAAoB,CACvB,SAAS,SAAS,aAAa,EAC/B,WAAW,SAAS,MAAM,GAAG,SAAS,EACtC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,SAAS,kBAAkB,CAAC,SAAS,CAAC,EACpD,SAAS,SAAS,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IACxC,IAAI,CACN,IAAI,CACF,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAC/B,MAAM,uBAAuB,CAC3B,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,eAAe,EACf,EAAE,EACF,YAAY,EACZ,cAAc,CAAC,MAAM,SAAS,CAAC,CAChC,CACF,GACC,uBAAuB,CACrB,SAAS,EACT,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CAAC,MAAM,SAAS,CAAC,CAChC,EACH,SAAS,GAAG,UAAU,CACvB,GACC,CACI;IACE;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAC1B,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CACxB,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,CAAC;KACH,CAAC;CACH,GACD;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAC3B,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,CAAC;IACF;;OAEG;IACH,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CACxB,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,CAAC;KACH,CAAC;CACH,CACJ,CAAC;AAEJ;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,IAAI;IAC7E,KAAK,EAAE;QACL,MAAM,EAAE,CAAC,CAAC;KACX,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS;IACR,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAChB,CAAC,GAAG,EAAE,MAAM,GAAG;gBACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aAC9B,CAAC;SACH,CAAC;KACH,CAAC;CACH,IACC,QAAQ,CACV,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GACzC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAC5C,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,cAAc,EAAE,UAAU,EAAE,WAAW,IAAI;IACtE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/C,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;CAC5C,CAAC;AAwEF;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrC,WAAW,EAAE,MAAM,GAClB,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAsDzB;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE;QACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,EAAE,mBAAmB,CAC3B,aAAa,EACb,eAAe,EACf,EAAE,EACF,YAAY,EACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,CAAC;QACF,MAAM,CAAC,EAAE;YACP,CAAC,GAAG,EAAE,MAAM,GAAG;gBACb,OAAO,EAAE,mBAAmB,CAC1B,aAAa,EACb,eAAe,EACf,EAAE,EACF,YAAY,EACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE;IACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACD,IAAI,CAAC,EAAE,OAAO,kBAkJf"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFocused.d.ts","sourceRoot":"","sources":["../../../src/useIsFocused.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAiCtC"}
1
+ {"version":3,"file":"useIsFocused.d.ts","sourceRoot":"","sources":["../../../src/useIsFocused.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAuBtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAMhF,KAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EACnE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAuBH"}
1
+ {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAOhF,KAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EACnE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAoBH"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/core",
3
3
  "description": "Core utilities for building navigators",
4
- "version": "7.0.0-rc.7",
4
+ "version": "7.0.0-rc.9",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -46,12 +46,14 @@
46
46
  "nanoid": "3.3.7",
47
47
  "query-string": "^7.1.3",
48
48
  "react-is": "^18.2.0",
49
- "use-latest-callback": "^0.1.11"
49
+ "use-latest-callback": "^0.2.1",
50
+ "use-sync-external-store": "^1.2.2"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@testing-library/react-native": "^12.4.3",
53
54
  "@types/react": "~18.2.79",
54
55
  "@types/react-is": "^18.2.3",
56
+ "@types/use-sync-external-store": "^0.0.6",
55
57
  "del-cli": "^5.1.0",
56
58
  "immer": "^10.0.3",
57
59
  "react": "18.2.0",
@@ -86,5 +88,5 @@
86
88
  ]
87
89
  ]
88
90
  },
89
- "gitHead": "a5dcadcdd72520c47ef4946b507017abd519ce9c"
91
+ "gitHead": "7e8963a5141f9fb53fc9ea9d01eb117006119c97"
90
92
  }
@@ -401,31 +401,39 @@ export function createComponentForStaticNavigation(
401
401
  );
402
402
  }
403
403
 
404
- const items = screens ? getItemsFromScreens(Screen, screens) : [];
404
+ const items: (() => JSX.Element | null)[] = [];
405
405
 
406
- if (groups) {
407
- items.push(
408
- ...Object.entries(groups).map(([key, { if: useIf, ...group }]) => {
409
- const groupItems = getItemsFromScreens(Screen, group.screens);
406
+ // Loop through the config to find screens and groups
407
+ // So we add the screens and groups in the same order as they are defined
408
+ for (const key in config) {
409
+ if (key === 'screens' && screens) {
410
+ items.push(...getItemsFromScreens(Screen, screens));
411
+ }
410
412
 
411
- return () => {
412
- // Call unconditionally since screen configs may contain `useIf` hooks
413
- const children = groupItems.map((item) => item());
413
+ if (key === 'groups' && groups) {
414
+ items.push(
415
+ ...Object.entries(groups).map(([key, { if: useIf, ...group }]) => {
416
+ const groupItems = getItemsFromScreens(Screen, group.screens);
414
417
 
415
- const shouldRender = useIf == null || useIf();
418
+ return () => {
419
+ // Call unconditionally since screen configs may contain `useIf` hooks
420
+ const children = groupItems.map((item) => item());
416
421
 
417
- if (!shouldRender) {
418
- return null;
419
- }
422
+ const shouldRender = useIf == null || useIf();
420
423
 
421
- return (
422
- <Group navigationKey={key} {...group} key={key}>
423
- {children}
424
- </Group>
425
- );
426
- };
427
- })
428
- );
424
+ if (!shouldRender) {
425
+ return null;
426
+ }
427
+
428
+ return (
429
+ <Group navigationKey={key} {...group} key={key}>
430
+ {children}
431
+ </Group>
432
+ );
433
+ };
434
+ })
435
+ );
436
+ }
429
437
  }
430
438
 
431
439
  const NavigatorComponent = () => {
@@ -591,23 +599,32 @@ export function createPathConfigForStaticNavigation(
591
599
  );
592
600
  };
593
601
 
594
- const screens = t.config.screens
595
- ? createPathConfigForScreens(
596
- t.config.screens,
597
- o?.initialRouteName ?? t.config.initialRouteName
598
- )
599
- : {};
602
+ const screens = {};
600
603
 
601
- if (t.config.groups) {
602
- Object.entries(t.config.groups).forEach(([, group]) => {
604
+ // Loop through the config to find screens and groups
605
+ // So we add the screens and groups in the same order as they are defined
606
+ for (const key in t.config) {
607
+ if (key === 'screens' && t.config.screens) {
603
608
  Object.assign(
604
609
  screens,
605
610
  createPathConfigForScreens(
606
- group.screens,
611
+ t.config.screens,
607
612
  o?.initialRouteName ?? t.config.initialRouteName
608
613
  )
609
614
  );
610
- });
615
+ }
616
+
617
+ if (key === 'groups' && t.config.groups) {
618
+ Object.entries(t.config.groups).forEach(([, group]) => {
619
+ Object.assign(
620
+ screens,
621
+ createPathConfigForScreens(
622
+ group.screens,
623
+ o?.initialRouteName ?? t.config.initialRouteName
624
+ )
625
+ );
626
+ });
627
+ }
611
628
  }
612
629
 
613
630
  if (Object.keys(screens).length === 0) {
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { useState } from 'react';
3
2
 
4
3
  import { useNavigation } from './useNavigation';
5
4
 
@@ -9,35 +8,25 @@ import { useNavigation } from './useNavigation';
9
8
  */
10
9
  export function useIsFocused(): boolean {
11
10
  const navigation = useNavigation();
12
- const [isFocused, setIsFocused] = useState(navigation.isFocused);
13
11
 
14
- const valueToReturn = navigation.isFocused();
15
-
16
- if (isFocused !== valueToReturn) {
17
- // If the value has changed since the last render, we need to update it.
18
- // This could happen if we missed an update from the event listeners during re-render.
19
- // React will process this update immediately, so the old subscription value won't be committed.
20
- // It is still nice to avoid returning a mismatched value though, so let's override the return value.
21
- // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription
22
- setIsFocused(valueToReturn);
23
- }
24
-
25
- React.useEffect(() => {
26
- const unsubscribeFocus = navigation.addListener('focus', () =>
27
- setIsFocused(true)
28
- );
29
-
30
- const unsubscribeBlur = navigation.addListener('blur', () =>
31
- setIsFocused(false)
32
- );
33
-
34
- return () => {
35
- unsubscribeFocus();
36
- unsubscribeBlur();
37
- };
38
- }, [navigation]);
39
-
40
- React.useDebugValue(valueToReturn);
41
-
42
- return valueToReturn;
12
+ const subscribe = React.useCallback(
13
+ (callback: () => void) => {
14
+ const unsubscribeFocus = navigation.addListener('focus', callback);
15
+ const unsubscribeBlur = navigation.addListener('blur', callback);
16
+
17
+ return () => {
18
+ unsubscribeFocus();
19
+ unsubscribeBlur();
20
+ };
21
+ },
22
+ [navigation]
23
+ );
24
+
25
+ const value = React.useSyncExternalStore(
26
+ subscribe,
27
+ navigation.isFocused,
28
+ navigation.isFocused
29
+ );
30
+
31
+ return value;
43
32
  }
@@ -1,5 +1,6 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
+ import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
3
4
 
4
5
  import type { NavigationProp } from './types';
5
6
  import { useNavigation } from './useNavigation';
@@ -18,24 +19,21 @@ export function useNavigationState<ParamList extends ParamListBase, T>(
18
19
  ): T {
19
20
  const navigation = useNavigation<NavigationProp<ParamList>>();
20
21
 
21
- // We don't care about the state value, we run the selector again at the end
22
- // The state is only to make sure that there's a re-render when we have a new value
23
- const [, setResult] = React.useState(() => selector(navigation.getState()));
22
+ const subscribe = React.useCallback(
23
+ (callback: () => void) => {
24
+ const unsubscribe = navigation.addListener('state', callback);
24
25
 
25
- // We store the selector in a ref to avoid re-subscribing listeners every render
26
- const selectorRef = React.useRef(selector);
26
+ return unsubscribe;
27
+ },
28
+ [navigation]
29
+ );
27
30
 
28
- React.useEffect(() => {
29
- selectorRef.current = selector;
30
- });
31
+ const value = useSyncExternalStoreWithSelector(
32
+ subscribe,
33
+ navigation.getState,
34
+ navigation.getState,
35
+ selector
36
+ );
31
37
 
32
- React.useEffect(() => {
33
- const unsubscribe = navigation.addListener('state', (e) => {
34
- setResult(selectorRef.current(e.data.state));
35
- });
36
-
37
- return unsubscribe;
38
- }, [navigation]);
39
-
40
- return selector(navigation.getState());
38
+ return value;
41
39
  }