@react-navigation/native 7.3.1 → 7.3.3

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@react-navigation/core';
3
+ import { CommonActions, findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@react-navigation/core';
4
4
  import isEqual from 'fast-deep-equal';
5
5
  import * as React from 'react';
6
6
  import { createMemoryHistory } from "./createMemoryHistory.js";
@@ -162,6 +162,51 @@ export function useLinking(ref, {
162
162
  const previousIndex = previousIndexRef.current ?? 0;
163
163
  previousIndexRef.current = index;
164
164
  pendingPopStatePathRef.current = path;
165
+ const rollbackHistory = () => {
166
+ const delta = previousIndex - index;
167
+ if (delta === 0) {
168
+ return;
169
+ }
170
+ pendingPopStatePathRef.current = undefined;
171
+
172
+ // eslint-disable-next-line promise/always-return
173
+ history.go(delta)?.then(() => {
174
+ previousIndexRef.current = history.index;
175
+ });
176
+ };
177
+ const rollbackHistoryIfPrevented = callback => {
178
+ let removePrevented = false;
179
+ let actionChangedState = false;
180
+ const unsubscribeEvent = navigation.addListener('__unsafe_event__', e => {
181
+ if (e.data.type === 'beforeRemove' && e.data.defaultPrevented) {
182
+ removePrevented = true;
183
+ }
184
+ });
185
+
186
+ // After preventing remove, user may synchronously continue navigation
187
+ // This is common when showing a confirmation dialog
188
+ // If this action produces an update, we don't want to rollback the history
189
+ const unsubscribeAction = navigation.addListener('__unsafe_action__', e => {
190
+ if (!e.data.noop) {
191
+ actionChangedState = true;
192
+ }
193
+ });
194
+ try {
195
+ callback();
196
+ } finally {
197
+ unsubscribeEvent();
198
+ unsubscribeAction();
199
+ }
200
+ if (removePrevented && !actionChangedState) {
201
+ rollbackHistory();
202
+ }
203
+ };
204
+ const dispatch = action => {
205
+ rollbackHistoryIfPrevented(() => navigation.dispatch(action));
206
+ };
207
+ const resetRoot = state => {
208
+ rollbackHistoryIfPrevented(() => navigation.resetRoot(state));
209
+ };
165
210
 
166
211
  // When browser back/forward is clicked, we first need to check if state object for this index exists
167
212
  // If it does we'll reset to that state object
@@ -174,9 +219,9 @@ export function useLinking(ref, {
174
219
  // If we detect that the state change is popping the last entry
175
220
  // Dispatch a back action instead of resetting to the state
176
221
  // This makes sure changes to history state since the entry was added don't get lost
177
- navigation.goBack();
222
+ dispatch(CommonActions.goBack());
178
223
  } else {
179
- navigation.resetRoot(record.state);
224
+ resetRoot(record.state);
180
225
  }
181
226
  return;
182
227
  }
@@ -200,21 +245,21 @@ export function useLinking(ref, {
200
245
  const action = getActionFromStateRef.current(state, configRef.current);
201
246
  if (action !== undefined) {
202
247
  try {
203
- navigation.dispatch(action);
248
+ dispatch(action);
204
249
  } catch (e) {
205
250
  // Ignore any errors from deep linking.
206
251
  // This could happen in case of malformed links, navigation object not being initialized etc.
207
252
  console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);
208
253
  }
209
254
  } else {
210
- navigation.resetRoot(state);
255
+ resetRoot(state);
211
256
  }
212
257
  } else {
213
- navigation.resetRoot(state);
258
+ resetRoot(state);
214
259
  }
215
260
  } else {
216
261
  // if current path didn't return any state, we should revert to initial state
217
- navigation.resetRoot(state);
262
+ resetRoot(state);
218
263
  }
219
264
  });
220
265
  }, [enabled, history, ref, validateRoutesNotExistInRootState]);
@@ -1 +1 @@
1
- {"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getHistoryLength","history","length","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoutes","recordRoutes","every","route","i","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","location","window","path","pathname","search","e","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","get","currentState","currentFocused","recordFocused","goBack","resetRoot","action","dispatch","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getHistoryLength","history","length","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoutes","recordRoutes","every","route","i","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","location","window","path","pathname","search","e","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","rollbackHistory","delta","go","rollbackHistoryIfPrevented","removePrevented","actionChangedState","unsubscribeEvent","addListener","data","type","defaultPrevented","unsubscribeAction","noop","dispatch","action","resetRoot","get","currentState","currentFocused","recordFocused","goBack","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,21 +6,6 @@ export declare function useBuildHref(): (name: string, params?: object) => strin
6
6
  * Helper to build a navigation action from a href based on the linking options.
7
7
  */
8
8
  export declare const useBuildAction: () => (href: string) => {
9
- type: "NAVIGATE";
10
- payload: {
11
- name: string;
12
- params?: import("@react-navigation/core").NavigatorScreenParams<Readonly<{
13
- key: string;
14
- index: number;
15
- routeNames: string[];
16
- history?: unknown[];
17
- routes: import("@react-navigation/routers").NavigationRoute<import("@react-navigation/routers").ParamListBase, string>[];
18
- type: string;
19
- stale: false;
20
- }>>;
21
- path?: string;
22
- };
23
- } | {
24
9
  type: "GO_BACK";
25
10
  source?: string;
26
11
  target?: string;
@@ -66,6 +51,21 @@ export declare const useBuildAction: () => (href: string) => {
66
51
  };
67
52
  source?: string;
68
53
  target?: string;
54
+ } | {
55
+ type: "NAVIGATE";
56
+ payload: {
57
+ name: string;
58
+ params?: import("@react-navigation/core").NavigatorScreenParams<Readonly<{
59
+ key: string;
60
+ index: number;
61
+ routeNames: string[];
62
+ history?: unknown[];
63
+ routes: import("@react-navigation/routers").NavigationRoute<import("@react-navigation/routers").ParamListBase, string>[];
64
+ type: string;
65
+ stale: false;
66
+ }>>;
67
+ path?: string;
68
+ };
69
69
  } | {
70
70
  readonly type: "RESET";
71
71
  readonly payload: (Readonly<{
@@ -104,21 +104,6 @@ export declare const useBuildAction: () => (href: string) => {
104
104
  export declare function useLinkBuilder(): {
105
105
  buildHref: (name: string, params?: object) => string | undefined;
106
106
  buildAction: (href: string) => {
107
- type: "NAVIGATE";
108
- payload: {
109
- name: string;
110
- params?: import("@react-navigation/core").NavigatorScreenParams<Readonly<{
111
- key: string;
112
- index: number;
113
- routeNames: string[];
114
- history?: unknown[];
115
- routes: import("@react-navigation/routers").NavigationRoute<import("@react-navigation/routers").ParamListBase, string>[];
116
- type: string;
117
- stale: false;
118
- }>>;
119
- path?: string;
120
- };
121
- } | {
122
107
  type: "GO_BACK";
123
108
  source?: string;
124
109
  target?: string;
@@ -164,6 +149,21 @@ export declare function useLinkBuilder(): {
164
149
  };
165
150
  source?: string;
166
151
  target?: string;
152
+ } | {
153
+ type: "NAVIGATE";
154
+ payload: {
155
+ name: string;
156
+ params?: import("@react-navigation/core").NavigatorScreenParams<Readonly<{
157
+ key: string;
158
+ index: number;
159
+ routeNames: string[];
160
+ history?: unknown[];
161
+ routes: import("@react-navigation/routers").NavigationRoute<import("@react-navigation/routers").ParamListBase, string>[];
162
+ type: string;
163
+ stale: false;
164
+ }>>;
165
+ path?: string;
166
+ };
167
167
  } | {
168
168
  readonly type: "RESET";
169
169
  readonly payload: (Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"useLinkBuilder.d.ts","sourceRoot":"","sources":["../../../src/useLinkBuilder.tsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAgB,YAAY,WAWjB,MAAM,WAAW,MAAM,wBAmEjC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,eAQhB,MAAM;;;;;;;;;;;;;;;;;;;;;;;cA7FP,CAAC;YAAsB,CAAC;aAAuB,CAAC;WAEnD,CAAC;;;;;;;;cAIwB,CAAC;aAE/B,CAAF;;;;;;;cAOe,CAAA;;;;;;;cAKgD,CAAC;;;;;;;;cAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFJ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc;sBA1GnB,MAAM,WAAW,MAAM;wBAgFvB,MAAM;;;;;;;;;;;;;;;;;;;;;;;kBA7FP,CAAC;gBAAsB,CAAC;iBAAuB,CAAC;eAEnD,CAAC;;;;;;;;kBAIwB,CAAC;iBAE/B,CAAF;;;;;;;kBAOe,CAAA;;;;;;;kBAKgD,CAAC;;;;;;;;kBAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuGJ"}
1
+ {"version":3,"file":"useLinkBuilder.d.ts","sourceRoot":"","sources":["../../../src/useLinkBuilder.tsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAgB,YAAY,WAWjB,MAAM,WAAW,MAAM,wBAmEjC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,eAQhB,MAAM;;;;;;;;cA7FP,CAAC;YAAsB,CAAC;aAAuB,CAAC;WAEnD,CAAC;;;;;;;;cAIwB,CAAC;aAE/B,CAAF;;;;;;;cAOe,CAAA;;;;;;;cAKgD,CAAC;;;;;;;;cAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFJ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc;sBA1GnB,MAAM,WAAW,MAAM;wBAgFvB,MAAM;;;;;;;;kBA7FP,CAAC;gBAAsB,CAAC;iBAAuB,CAAC;eAEnD,CAAC;;;;;;;;kBAIwB,CAAC;iBAE/B,CAAF;;;;;;;kBAOe,CAAA;;;;;;;kBAKgD,CAAC;;;;;;;;kBAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuGJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAuE9D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAE7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO;2BAsGW,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EA6R1D"}
1
+ {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAuE9D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAE7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO;2BAsGW,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EAyV1D"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/native",
3
3
  "description": "React Native integration for React Navigation",
4
- "version": "7.3.1",
4
+ "version": "7.3.3",
5
5
  "keywords": [
6
6
  "react-native",
7
7
  "react-navigation",
@@ -42,7 +42,7 @@
42
42
  "clean": "del lib"
43
43
  },
44
44
  "dependencies": {
45
- "@react-navigation/core": "^7.20.0",
45
+ "@react-navigation/core": "^7.21.1",
46
46
  "escape-string-regexp": "^4.0.0",
47
47
  "fast-deep-equal": "^3.1.3",
48
48
  "nanoid": "^3.3.11",
@@ -84,5 +84,5 @@
84
84
  ]
85
85
  ]
86
86
  },
87
- "gitHead": "d1f2a06597d7f2ae490d09b7ecc4f3531e5efc46"
87
+ "gitHead": "f4af3430155cdd765d02af4e654dcf79b1702b6d"
88
88
  }
@@ -1,4 +1,5 @@
1
1
  import {
2
+ CommonActions,
2
3
  findFocusedRoute,
3
4
  getActionFromState as getActionFromStateDefault,
4
5
  getPathFromState as getPathFromStateDefault,
@@ -240,6 +241,66 @@ export function useLinking(
240
241
  previousIndexRef.current = index;
241
242
  pendingPopStatePathRef.current = path;
242
243
 
244
+ const rollbackHistory = () => {
245
+ const delta = previousIndex - index;
246
+
247
+ if (delta === 0) {
248
+ return;
249
+ }
250
+
251
+ pendingPopStatePathRef.current = undefined;
252
+
253
+ // eslint-disable-next-line promise/always-return
254
+ history.go(delta)?.then(() => {
255
+ previousIndexRef.current = history.index;
256
+ });
257
+ };
258
+
259
+ const rollbackHistoryIfPrevented = (callback: () => void) => {
260
+ let removePrevented = false;
261
+ let actionChangedState = false;
262
+
263
+ const unsubscribeEvent = navigation.addListener(
264
+ '__unsafe_event__',
265
+ (e) => {
266
+ if (e.data.type === 'beforeRemove' && e.data.defaultPrevented) {
267
+ removePrevented = true;
268
+ }
269
+ }
270
+ );
271
+
272
+ // After preventing remove, user may synchronously continue navigation
273
+ // This is common when showing a confirmation dialog
274
+ // If this action produces an update, we don't want to rollback the history
275
+ const unsubscribeAction = navigation.addListener(
276
+ '__unsafe_action__',
277
+ (e) => {
278
+ if (!e.data.noop) {
279
+ actionChangedState = true;
280
+ }
281
+ }
282
+ );
283
+
284
+ try {
285
+ callback();
286
+ } finally {
287
+ unsubscribeEvent();
288
+ unsubscribeAction();
289
+ }
290
+
291
+ if (removePrevented && !actionChangedState) {
292
+ rollbackHistory();
293
+ }
294
+ };
295
+
296
+ const dispatch = (action: Parameters<typeof navigation.dispatch>[0]) => {
297
+ rollbackHistoryIfPrevented(() => navigation.dispatch(action));
298
+ };
299
+
300
+ const resetRoot = (state: Parameters<typeof navigation.resetRoot>[0]) => {
301
+ rollbackHistoryIfPrevented(() => navigation.resetRoot(state));
302
+ };
303
+
243
304
  // When browser back/forward is clicked, we first need to check if state object for this index exists
244
305
  // If it does we'll reset to that state object
245
306
  // Otherwise, we'll handle it like a regular deep link
@@ -262,9 +323,9 @@ export function useLinking(
262
323
  // If we detect that the state change is popping the last entry
263
324
  // Dispatch a back action instead of resetting to the state
264
325
  // This makes sure changes to history state since the entry was added don't get lost
265
- navigation.goBack();
326
+ dispatch(CommonActions.goBack());
266
327
  } else {
267
- navigation.resetRoot(record.state);
328
+ resetRoot(record.state);
268
329
  }
269
330
 
270
331
  return;
@@ -297,7 +358,7 @@ export function useLinking(
297
358
 
298
359
  if (action !== undefined) {
299
360
  try {
300
- navigation.dispatch(action);
361
+ dispatch(action);
301
362
  } catch (e) {
302
363
  // Ignore any errors from deep linking.
303
364
  // This could happen in case of malformed links, navigation object not being initialized etc.
@@ -310,14 +371,14 @@ export function useLinking(
310
371
  );
311
372
  }
312
373
  } else {
313
- navigation.resetRoot(state);
374
+ resetRoot(state);
314
375
  }
315
376
  } else {
316
- navigation.resetRoot(state);
377
+ resetRoot(state);
317
378
  }
318
379
  } else {
319
380
  // if current path didn't return any state, we should revert to initial state
320
- navigation.resetRoot(state);
381
+ resetRoot(state);
321
382
  }
322
383
  });
323
384
  }, [enabled, history, ref, validateRoutesNotExistInRootState]);