@react-navigation/routers 6.1.5 → 6.1.7

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 (41) hide show
  1. package/lib/commonjs/BaseRouter.js +10 -17
  2. package/lib/commonjs/BaseRouter.js.map +1 -1
  3. package/lib/commonjs/CommonActions.js +0 -6
  4. package/lib/commonjs/CommonActions.js.map +1 -1
  5. package/lib/commonjs/DrawerRouter.js +12 -45
  6. package/lib/commonjs/DrawerRouter.js.map +1 -1
  7. package/lib/commonjs/StackRouter.js +40 -73
  8. package/lib/commonjs/StackRouter.js.map +1 -1
  9. package/lib/commonjs/TabRouter.js +37 -61
  10. package/lib/commonjs/TabRouter.js.map +1 -1
  11. package/lib/commonjs/index.js +0 -11
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/module/BaseRouter.js +10 -16
  15. package/lib/module/BaseRouter.js.map +1 -1
  16. package/lib/module/CommonActions.js +0 -2
  17. package/lib/module/CommonActions.js.map +1 -1
  18. package/lib/module/DrawerRouter.js +12 -39
  19. package/lib/module/DrawerRouter.js.map +1 -1
  20. package/lib/module/StackRouter.js +40 -68
  21. package/lib/module/StackRouter.js.map +1 -1
  22. package/lib/module/TabRouter.js +37 -57
  23. package/lib/module/TabRouter.js.map +1 -1
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/types.js.map +1 -1
  26. package/lib/typescript/src/BaseRouter.d.ts +1 -0
  27. package/lib/typescript/src/BaseRouter.d.ts.map +1 -0
  28. package/lib/typescript/src/CommonActions.d.ts +1 -0
  29. package/lib/typescript/src/CommonActions.d.ts.map +1 -0
  30. package/lib/typescript/src/DrawerRouter.d.ts +1 -0
  31. package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
  32. package/lib/typescript/src/StackRouter.d.ts +1 -0
  33. package/lib/typescript/src/StackRouter.d.ts.map +1 -0
  34. package/lib/typescript/src/TabRouter.d.ts +1 -0
  35. package/lib/typescript/src/TabRouter.d.ts.map +1 -0
  36. package/lib/typescript/src/index.d.ts +1 -0
  37. package/lib/typescript/src/index.d.ts.map +1 -0
  38. package/lib/typescript/src/types.d.ts +1 -0
  39. package/lib/typescript/src/types.d.ts.map +1 -0
  40. package/package.json +3 -3
  41. package/src/TabRouter.tsx +17 -3
@@ -11,16 +11,13 @@ export const TabActions = {
11
11
  }
12
12
  };
13
13
  }
14
-
15
14
  };
16
-
17
15
  const getRouteHistory = (routes, index, backBehavior, initialRouteName) => {
18
16
  const history = [{
19
17
  type: TYPE_ROUTE,
20
18
  key: routes[index].key
21
19
  }];
22
20
  let initialRouteIndex;
23
-
24
21
  switch (backBehavior) {
25
22
  case 'order':
26
23
  for (let i = index; i > 0; i--) {
@@ -29,9 +26,7 @@ const getRouteHistory = (routes, index, backBehavior, initialRouteName) => {
29
26
  key: routes[i - 1].key
30
27
  });
31
28
  }
32
-
33
29
  break;
34
-
35
30
  case 'firstRoute':
36
31
  if (index !== 0) {
37
32
  history.unshift({
@@ -39,33 +34,25 @@ const getRouteHistory = (routes, index, backBehavior, initialRouteName) => {
39
34
  key: routes[0].key
40
35
  });
41
36
  }
42
-
43
37
  break;
44
-
45
38
  case 'initialRoute':
46
39
  initialRouteIndex = routes.findIndex(route => route.name === initialRouteName);
47
40
  initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;
48
-
49
41
  if (index !== initialRouteIndex) {
50
42
  history.unshift({
51
43
  type: TYPE_ROUTE,
52
44
  key: routes[initialRouteIndex].key
53
45
  });
54
46
  }
55
-
56
47
  break;
57
-
58
48
  case 'history':
59
49
  // The history will fill up on navigation
60
50
  break;
61
51
  }
62
-
63
52
  return history;
64
53
  };
65
-
66
54
  const changeIndex = (state, index, backBehavior, initialRouteName) => {
67
55
  let history;
68
-
69
56
  if (backBehavior === 'history') {
70
57
  const currentKey = state.routes[index].key;
71
58
  history = state.history.filter(it => it.type === 'route' ? it.key !== currentKey : false).concat({
@@ -75,21 +62,20 @@ const changeIndex = (state, index, backBehavior, initialRouteName) => {
75
62
  } else {
76
63
  history = getRouteHistory(state.routes, index, backBehavior, initialRouteName);
77
64
  }
78
-
79
- return { ...state,
65
+ return {
66
+ ...state,
80
67
  index,
81
68
  history
82
69
  };
83
70
  };
84
-
85
71
  export default function TabRouter(_ref) {
86
72
  let {
87
73
  initialRouteName,
88
74
  backBehavior = 'firstRoute'
89
75
  } = _ref;
90
- const router = { ...BaseRouter,
76
+ const router = {
77
+ ...BaseRouter,
91
78
  type: 'tab',
92
-
93
79
  getInitialState(_ref2) {
94
80
  let {
95
81
  routeNames,
@@ -112,32 +98,30 @@ export default function TabRouter(_ref) {
112
98
  routes
113
99
  };
114
100
  },
115
-
116
101
  getRehydratedState(partialState, _ref3) {
117
- var _state$routes, _state$index, _state$history$filter, _state$history;
118
-
102
+ var _state$routes, _state$history;
119
103
  let {
120
104
  routeNames,
121
105
  routeParamList
122
106
  } = _ref3;
123
107
  let state = partialState;
124
-
125
108
  if (state.stale === false) {
126
109
  return state;
127
110
  }
128
-
129
111
  const routes = routeNames.map(name => {
130
112
  const route = state.routes.find(r => r.name === name);
131
- return { ...route,
113
+ return {
114
+ ...route,
132
115
  name,
133
116
  key: route && route.name === name && route.key ? route.key : `${name}-${nanoid()}`,
134
- params: routeParamList[name] !== undefined ? { ...routeParamList[name],
117
+ params: routeParamList[name] !== undefined ? {
118
+ ...routeParamList[name],
135
119
  ...(route ? route.params : undefined)
136
120
  } : route ? route.params : undefined
137
121
  };
138
122
  });
139
- const index = Math.min(Math.max(routeNames.indexOf((_state$routes = state.routes[(_state$index = state === null || state === void 0 ? void 0 : state.index) !== null && _state$index !== void 0 ? _state$index : 0]) === null || _state$routes === void 0 ? void 0 : _state$routes.name), 0), routes.length - 1);
140
- const history = (_state$history$filter = (_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.filter(it => routes.find(r => r.key === it.key))) !== null && _state$history$filter !== void 0 ? _state$history$filter : [];
123
+ const index = Math.min(Math.max(routeNames.indexOf((_state$routes = state.routes[(state === null || state === void 0 ? void 0 : state.index) ?? 0]) === null || _state$routes === void 0 ? void 0 : _state$routes.name), 0), routes.length - 1);
124
+ const history = ((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.filter(it => routes.find(r => r.key === it.key))) ?? [];
141
125
  return changeIndex({
142
126
  stale: false,
143
127
  type: 'tab',
@@ -148,7 +132,6 @@ export default function TabRouter(_ref) {
148
132
  routes
149
133
  }, index, backBehavior, initialRouteName);
150
134
  },
151
-
152
135
  getStateForRouteNamesChange(state, _ref4) {
153
136
  let {
154
137
  routeNames,
@@ -161,108 +144,105 @@ export default function TabRouter(_ref) {
161
144
  params: routeParamList[name]
162
145
  });
163
146
  const index = Math.max(0, routeNames.indexOf(state.routes[state.index].name));
164
- let history = state.history.filter( // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)
147
+ let history = state.history.filter(
148
+ // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)
165
149
  it => it.type !== 'route' || routes.find(r => r.key === it.key));
166
-
167
150
  if (!history.length) {
168
151
  history = getRouteHistory(routes, index, backBehavior, initialRouteName);
169
152
  }
170
-
171
- return { ...state,
153
+ return {
154
+ ...state,
172
155
  history,
173
156
  routeNames,
174
157
  routes,
175
158
  index
176
159
  };
177
160
  },
178
-
179
161
  getStateForRouteFocus(state, key) {
180
162
  const index = state.routes.findIndex(r => r.key === key);
181
-
182
163
  if (index === -1 || index === state.index) {
183
164
  return state;
184
165
  }
185
-
186
166
  return changeIndex(state, index, backBehavior, initialRouteName);
187
167
  },
188
-
189
168
  getStateForAction(state, action, _ref5) {
190
169
  let {
191
- routeParamList
170
+ routeParamList,
171
+ routeGetIdList
192
172
  } = _ref5;
193
-
194
173
  switch (action.type) {
195
174
  case 'JUMP_TO':
196
175
  case 'NAVIGATE':
197
176
  {
198
177
  let index = -1;
199
-
200
178
  if (action.type === 'NAVIGATE' && action.payload.key) {
201
179
  index = state.routes.findIndex(route => route.key === action.payload.key);
202
180
  } else {
203
181
  index = state.routes.findIndex(route => route.name === action.payload.name);
204
182
  }
205
-
206
183
  if (index === -1) {
207
184
  return null;
208
185
  }
209
-
210
- return changeIndex({ ...state,
186
+ return changeIndex({
187
+ ...state,
211
188
  routes: state.routes.map((route, i) => {
212
189
  if (i !== index) {
213
190
  return route;
214
191
  }
215
-
192
+ const getId = routeGetIdList[route.name];
193
+ const currentId = getId === null || getId === void 0 ? void 0 : getId({
194
+ params: route.params
195
+ });
196
+ const nextId = getId === null || getId === void 0 ? void 0 : getId({
197
+ params: action.payload.params
198
+ });
199
+ const key = currentId === nextId ? route.key : `${route.name}-${nanoid()}`;
216
200
  let params;
217
-
218
- if (action.type === 'NAVIGATE' && action.payload.merge) {
219
- params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? { ...routeParamList[route.name],
201
+ if (action.type === 'NAVIGATE' && action.payload.merge && currentId === nextId) {
202
+ params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
203
+ ...routeParamList[route.name],
220
204
  ...route.params,
221
205
  ...action.payload.params
222
206
  } : route.params;
223
207
  } else {
224
- params = routeParamList[route.name] !== undefined ? { ...routeParamList[route.name],
208
+ params = routeParamList[route.name] !== undefined ? {
209
+ ...routeParamList[route.name],
225
210
  ...action.payload.params
226
211
  } : action.payload.params;
227
212
  }
228
-
229
213
  const path = action.type === 'NAVIGATE' && action.payload.path != null ? action.payload.path : route.path;
230
- return params !== route.params || path !== route.path ? { ...route,
214
+ return params !== route.params || path !== route.path ? {
215
+ ...route,
216
+ key,
231
217
  path,
232
218
  params
233
219
  } : route;
234
220
  })
235
221
  }, index, backBehavior, initialRouteName);
236
222
  }
237
-
238
223
  case 'GO_BACK':
239
224
  {
240
225
  if (state.history.length === 1) {
241
226
  return null;
242
227
  }
243
-
244
228
  const previousKey = state.history[state.history.length - 2].key;
245
229
  const index = state.routes.findIndex(route => route.key === previousKey);
246
-
247
230
  if (index === -1) {
248
231
  return null;
249
232
  }
250
-
251
- return { ...state,
233
+ return {
234
+ ...state,
252
235
  history: state.history.slice(0, -1),
253
236
  index
254
237
  };
255
238
  }
256
-
257
239
  default:
258
240
  return BaseRouter.getStateForAction(state, action);
259
241
  }
260
242
  },
261
-
262
243
  shouldActionChangeFocus(action) {
263
244
  return action.type === 'NAVIGATE';
264
245
  },
265
-
266
246
  actionCreators: TabActions
267
247
  };
268
248
  return router;
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","BaseRouter","TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"sources":["TabRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState<ParamList extends ParamListBase> = Omit<\n NavigationState<ParamList>,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo<RouteName extends Extract<keyof ParamList, string>>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route<string>[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key,\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key,\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState<ParamListBase>,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState<TabNavigationState<ParamListBase>>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route<string>;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n (it) => it.type !== 'route' || routes.find((r) => r.key === it.key)\n );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n let params;\n\n if (action.type === 'NAVIGATE' && action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["nanoid","BaseRouter","TYPE_ROUTE","TabActions","jumpTo","name","params","type","payload","getRouteHistory","routes","index","backBehavior","initialRouteName","history","key","initialRouteIndex","i","unshift","findIndex","route","changeIndex","state","currentKey","filter","it","concat","TabRouter","router","getInitialState","routeNames","routeParamList","undefined","includes","indexOf","map","stale","getRehydratedState","partialState","find","r","Math","min","max","length","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getStateForAction","action","routeGetIdList","getId","currentId","nextId","merge","path","previousKey","slice","shouldActionChangeFocus","actionCreators"],"sourceRoot":"../../src","sources":["TabRouter.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","default","BaseRouter","DrawerActions","DrawerRouter","StackActions","StackRouter","TabActions","TabRouter"],"sources":["index.tsx"],"sourcesContent":["import * as CommonActions from './CommonActions';\n\nexport { CommonActions };\n\nexport { default as BaseRouter } from './BaseRouter';\nexport type {\n DrawerActionHelpers,\n DrawerActionType,\n DrawerNavigationState,\n DrawerRouterOptions,\n DrawerStatus,\n} from './DrawerRouter';\nexport { DrawerActions, default as DrawerRouter } from './DrawerRouter';\nexport type {\n StackActionHelpers,\n StackActionType,\n StackNavigationState,\n StackRouterOptions,\n} from './StackRouter';\nexport { StackActions, default as StackRouter } from './StackRouter';\nexport type {\n TabActionHelpers,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nexport { TabActions, default as TabRouter } from './TabRouter';\nexport * from './types';\n"],"mappings":"AAAA,OAAO,KAAKA,aAAZ,MAA+B,iBAA/B;AAEA,SAASA,aAAT;AAEA,SAASC,OAAO,IAAIC,UAApB,QAAsC,cAAtC;AAQA,SAASC,aAAT,EAAwBF,OAAO,IAAIG,YAAnC,QAAuD,gBAAvD;AAOA,SAASC,YAAT,EAAuBJ,OAAO,IAAIK,WAAlC,QAAqD,eAArD;AAOA,SAASC,UAAT,EAAqBN,OAAO,IAAIO,SAAhC,QAAiD,aAAjD;AACA,cAAc,SAAd"}
1
+ {"version":3,"names":["CommonActions","default","BaseRouter","DrawerActions","DrawerRouter","StackActions","StackRouter","TabActions","TabRouter"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAO,KAAKA,aAAa,MAAM,iBAAiB;AAEhD,SAASA,aAAa;AAEtB,SAASC,OAAO,IAAIC,UAAU,QAAQ,cAAc;AAQpD,SAASC,aAAa,EAAEF,OAAO,IAAIG,YAAY,QAAQ,gBAAgB;AAOvE,SAASC,YAAY,EAAEJ,OAAO,IAAIK,WAAW,QAAQ,eAAe;AAOpE,SAASC,UAAU,EAAEN,OAAO,IAAIO,SAAS,QAAQ,aAAa;AAC9D,cAAc,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.tsx"],"sourcesContent":["import type * as CommonActions from './CommonActions';\n\nexport type CommonNavigationAction = CommonActions.Action;\n\ntype NavigationRoute<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {\n state?: NavigationState | PartialState<NavigationState>;\n};\n\nexport type NavigationState<ParamList extends ParamListBase = ParamListBase> =\n Readonly<{\n /**\n * Unique key for the navigation state.\n */\n key: string;\n /**\n * Index of the currently focused route.\n */\n index: number;\n /**\n * List of valid route names as defined in the screen components.\n */\n routeNames: Extract<keyof ParamList, string>[];\n /**\n * Alternative entries for history.\n */\n history?: unknown[];\n /**\n * List of rendered routes.\n */\n routes: NavigationRoute<ParamList, keyof ParamList>[];\n /**\n * Custom type for the state, whether it's for tab, stack, drawer etc.\n * During rehydration, the state will be discarded if type doesn't match with router type.\n * It can also be used to detect the type of the navigator we're dealing with.\n */\n type: string;\n /**\n * Whether the navigation state has been rehydrated.\n */\n stale: false;\n }>;\n\nexport type InitialState = Readonly<\n Partial<Omit<NavigationState, 'stale' | 'routes'>> & {\n routes: (Omit<Route<string>, 'key'> & { state?: InitialState })[];\n }\n>;\n\nexport type PartialRoute<R extends Route<string>> = Omit<R, 'key'> & {\n key?: string;\n state?: PartialState<NavigationState>;\n};\n\nexport type PartialState<State extends NavigationState> = Partial<\n Omit<State, 'stale' | 'routes'>\n> &\n Readonly<{\n stale?: true;\n routes: PartialRoute<Route<State['routeNames'][number]>>[];\n }>;\n\nexport type Route<\n RouteName extends string,\n Params extends object | undefined = object | undefined\n> = Readonly<{\n /**\n * Unique key for the route.\n */\n key: string;\n /**\n * User-provided name for the route.\n */\n name: RouteName;\n /**\n * Path associated with the route.\n * Usually present when the screen was opened from a deep link.\n */\n path?: string;\n}> &\n (undefined extends Params\n ? Readonly<{\n /**\n * Params for this route\n */\n params?: Readonly<Params>;\n }>\n : Readonly<{\n /**\n * Params for this route\n */\n params: Readonly<Params>;\n }>);\n\nexport type ParamListBase = Record<string, object | undefined>;\n\nexport type NavigationAction = Readonly<{\n /**\n * Type of the action (e.g. `NAVIGATE`)\n */\n type: string;\n /**\n * Additional data for the action\n */\n payload?: object;\n /**\n * Key of the route which dispatched this action.\n */\n source?: string;\n /**\n * Key of the navigator which should handle this action.\n */\n target?: string;\n}>;\n\nexport type ActionCreators<Action extends NavigationAction> = {\n [key: string]: (...args: any) => Action;\n};\n\nexport type DefaultRouterOptions<RouteName extends string = string> = {\n /**\n * Name of the route to focus by on initial render.\n * If not specified, usually the first route is used.\n */\n initialRouteName?: RouteName;\n};\n\nexport type RouterFactory<\n State extends NavigationState,\n Action extends NavigationAction,\n RouterOptions extends DefaultRouterOptions\n> = (options: RouterOptions) => Router<State, Action>;\n\nexport type RouterConfigOptions = {\n routeNames: string[];\n routeParamList: ParamListBase;\n routeGetIdList: Record<\n string,\n | ((options: { params?: Record<string, any> }) => string | undefined)\n | undefined\n >;\n};\n\nexport type Router<\n State extends NavigationState,\n Action extends NavigationAction\n> = {\n /**\n * Type of the router. Should match the `type` property in state.\n * If the type doesn't match, the state will be discarded during rehydration.\n */\n type: State['type'];\n\n /**\n * Initialize the navigation state.\n *\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getInitialState(options: RouterConfigOptions): State;\n\n /**\n * Rehydrate the full navigation state from a given partial state.\n *\n * @param partialState Navigation state to rehydrate from.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getRehydratedState(\n partialState: PartialState<State> | State,\n options: RouterConfigOptions\n ): State;\n\n /**\n * Take the current state and updated list of route names, and return a new state.\n *\n * @param state State object to update.\n * @param options.routeNames New list of route names.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForRouteNamesChange(\n state: State,\n options: RouterConfigOptions & {\n /**\n * List of routes whose key has changed even if they still have the same name.\n * This allows to remove screens declaratively.\n */\n routeKeyChanges: string[];\n }\n ): State;\n\n /**\n * Take the current state and key of a route, and return a new state with the route focused\n *\n * @param state State object to apply the action on.\n * @param key Key of the route to focus.\n */\n getStateForRouteFocus(state: State, key: string): State;\n\n /**\n * Take the current state and action, and return a new state.\n * If the action cannot be handled, return `null`.\n *\n * @param state State object to apply the action on.\n * @param action Action object to apply.\n * @param options.routeNames List of valid route names as defined in the screen components.\n * @param options.routeParamsList Object containing params for each route.\n */\n getStateForAction(\n state: State,\n action: Action,\n options: RouterConfigOptions\n ): State | PartialState<State> | null;\n\n /**\n * Whether the action should also change focus in parent navigator\n *\n * @param action Action object to check.\n */\n shouldActionChangeFocus(action: NavigationAction): boolean;\n\n /**\n * Action creators for the router.\n */\n actionCreators?: ActionCreators<Action>;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":""}
@@ -24,3 +24,4 @@ declare const BaseRouter: {
24
24
  shouldActionChangeFocus(action: CommonNavigationAction): boolean;
25
25
  };
26
26
  export default BaseRouter;
27
+ //# sourceMappingURL=BaseRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseRouter.d.ts","sourceRoot":"","sources":["../../../src/BaseRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EAEtB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;8BAGJ,sBAAsB;oCA4DA,sBAAsB;CAGvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -53,3 +53,4 @@ export declare function navigate(name: string, params?: object): Action;
53
53
  export declare function reset(state: ResetState | undefined): Action;
54
54
  export declare function setParams(params: object): Action;
55
55
  export {};
56
+ //# sourceMappingURL=CommonActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonActions.d.ts","sourceRoot":"","sources":["../../../src/CommonActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEpE,aAAK,UAAU,GACX,YAAY,CAAC,eAAe,CAAC,GAC7B,eAAe,GACf,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IACjC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAEP,oBAAY,MAAM,GACd;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EACH;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACN,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,QAAQ,CACtB,OAAO,EACH;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE;IACE,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACJ,MAAM,CAAC;AAEV,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAkBhE,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAE3D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -50,3 +50,4 @@ export declare const DrawerActions: {
50
50
  jumpTo(name: string, params?: object | undefined): TabActionType;
51
51
  };
52
52
  export default function DrawerRouter({ defaultStatus, ...rest }: DrawerRouterOptions): Router<DrawerNavigationState<ParamListBase>, DrawerActionType | CommonNavigationAction>;
53
+ //# sourceMappingURL=DrawerRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerRouter.d.ts","sourceRoot":"","sources":["../../../src/DrawerRouter.tsx"],"names":[],"mappings":"AAEA,OAAkB,EAChB,gBAAgB,EAEhB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,oBAAY,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7C,oBAAY,gBAAgB,GACxB,aAAa,GACb;IACE,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,oBAAY,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,oBAAY,qBAAqB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACvE,kBAAkB,CAAC,SAAS,CAAC,EAC7B,MAAM,GAAG,SAAS,CACnB,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,CACL;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,CAC3C,EAAE,CAAC;CACL,CAAC;AAEF,oBAAY,mBAAmB,CAAC,SAAS,SAAS,aAAa,IAC7D,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC5B;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;CACtB,CAAC;AAEJ,eAAO,MAAM,aAAa;kBAEV,gBAAgB;mBAGf,gBAAgB;oBAGf,gBAAgB;;CAGjC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,aAAwB,EACxB,GAAG,IAAI,EACR,EAAE,mBAAmB,GAAG,MAAM,CAC7B,qBAAqB,CAAC,aAAa,CAAC,EACpC,gBAAgB,GAAG,sBAAsB,CAC1C,CA+JA"}
@@ -66,3 +66,4 @@ export declare const StackActions: {
66
66
  popToTop(): StackActionType;
67
67
  };
68
68
  export default function StackRouter(options: StackRouterOptions): Router<StackNavigationState<ParamListBase>, import("./CommonActions").Action | StackActionType>;
69
+ //# sourceMappingURL=StackRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackRouter.d.ts","sourceRoot":"","sources":["../../../src/StackRouter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EACf,aAAa,EAEb,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,oBAAY,eAAe,GACvB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,oBAAY,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,oBAAY,oBAAoB,CAAC,SAAS,SAAS,aAAa,IAC9D,eAAe,CAAC,SAAS,CAAC,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEJ,oBAAY,kBAAkB,CAAC,SAAS,SAAS,aAAa,IAAI;IAChE;;;;;OAKG;IACH,OAAO,CAAC,SAAS,SAAS,MAAM,SAAS,EACvC,GAAG,IAAI,EAAE,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GAC3C,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACvE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACpD,IAAI,CAAC;IAER;;;;;OAKG;IACH,IAAI,CAAC,SAAS,SAAS,MAAM,SAAS,EACpC,GAAG,IAAI,EAAE,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GAC3C,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACvE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACpD,IAAI,CAAC;IAER;;OAEG;IACH,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY;kBACT,MAAM,WAAW,MAAM,GAAG,eAAe;eAG5C,MAAM,WAAW,MAAM,GAAG,eAAe;gBAGzC,MAAM,GAAO,eAAe;gBAG3B,eAAe;CAG5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAO,EAAE,kBAAkB,mGA4Y9D"}
@@ -38,3 +38,4 @@ export declare const TabActions: {
38
38
  jumpTo(name: string, params?: object): TabActionType;
39
39
  };
40
40
  export default function TabRouter({ initialRouteName, backBehavior, }: TabRouterOptions): Router<TabNavigationState<ParamListBase>, import("./CommonActions").Action | TabActionType>;
41
+ //# sourceMappingURL=TabRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../../src/TabRouter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EACf,aAAa,EAGb,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,YAAY,GACpB,cAAc,GACd,YAAY,GACZ,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX,oBAAY,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,oBAAY,kBAAkB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACpE,eAAe,CAAC,SAAS,CAAC,EAC1B,SAAS,CACV,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C,CAAC;AAEF,oBAAY,gBAAgB,CAAC,SAAS,SAAS,aAAa,IAAI;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EACvD,GAAG,IAAI,EAAE,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GAC3C,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACvE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACpD,IAAI,CAAC;CACT,CAAC;AAIF,eAAO,MAAM,UAAU;iBACR,MAAM,WAAW,MAAM,GAAG,aAAa;CAGrD,CAAC;AA4EF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,gBAAgB,EAChB,YAA2B,GAC5B,EAAE,gBAAgB,+FAsQlB"}
@@ -8,3 +8,4 @@ export { StackActions, default as StackRouter } from './StackRouter';
8
8
  export type { TabActionHelpers, TabActionType, TabNavigationState, TabRouterOptions, } from './TabRouter';
9
9
  export { TabActions, default as TabRouter } from './TabRouter';
10
10
  export * from './types';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,cAAc,SAAS,CAAC"}
@@ -174,3 +174,4 @@ export declare type Router<State extends NavigationState, Action extends Navigat
174
174
  actionCreators?: ActionCreators<Action>;
175
175
  };
176
176
  export {};
177
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/routers",
3
3
  "description": "Routers to help build custom navigators",
4
- "version": "6.1.5",
4
+ "version": "6.1.7",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "del-cli": "^3.0.1",
43
- "react-native-builder-bob": "^0.18.1",
43
+ "react-native-builder-bob": "^0.20.3",
44
44
  "typescript": "^4.7.4"
45
45
  },
46
46
  "react-native-builder-bob": {
@@ -57,5 +57,5 @@
57
57
  ]
58
58
  ]
59
59
  },
60
- "gitHead": "4e29403ec63d9304561e296667f6cf15806c316b"
60
+ "gitHead": "f2a05ec1634bc60302e9f6bd6cd2fb36083fb7c5"
61
61
  }
package/src/TabRouter.tsx CHANGED
@@ -290,7 +290,7 @@ export default function TabRouter({
290
290
  return changeIndex(state, index, backBehavior, initialRouteName);
291
291
  },
292
292
 
293
- getStateForAction(state, action, { routeParamList }) {
293
+ getStateForAction(state, action, { routeParamList, routeGetIdList }) {
294
294
  switch (action.type) {
295
295
  case 'JUMP_TO':
296
296
  case 'NAVIGATE': {
@@ -318,9 +318,23 @@ export default function TabRouter({
318
318
  return route;
319
319
  }
320
320
 
321
+ const getId = routeGetIdList[route.name];
322
+
323
+ const currentId = getId?.({ params: route.params });
324
+ const nextId = getId?.({ params: action.payload.params });
325
+
326
+ const key =
327
+ currentId === nextId
328
+ ? route.key
329
+ : `${route.name}-${nanoid()}`;
330
+
321
331
  let params;
322
332
 
323
- if (action.type === 'NAVIGATE' && action.payload.merge) {
333
+ if (
334
+ action.type === 'NAVIGATE' &&
335
+ action.payload.merge &&
336
+ currentId === nextId
337
+ ) {
324
338
  params =
325
339
  action.payload.params !== undefined ||
326
340
  routeParamList[route.name] !== undefined
@@ -346,7 +360,7 @@ export default function TabRouter({
346
360
  : route.path;
347
361
 
348
362
  return params !== route.params || path !== route.path
349
- ? { ...route, path, params }
363
+ ? { ...route, key, path, params }
350
364
  : route;
351
365
  }),
352
366
  },