expo-router 58.0.21 → 58.0.23

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 (38) hide show
  1. package/android/build.gradle +2 -2
  2. package/build/fork/useLinking.native.js +2 -1
  3. package/build/fork/useLinking.native.js.map +1 -1
  4. package/build/global-state/getNavigationAction.js +4 -1
  5. package/build/global-state/getNavigationAction.js.map +1 -1
  6. package/build/global-state/resolveNavigationDestination.js +46 -7
  7. package/build/global-state/resolveNavigationDestination.js.map +1 -1
  8. package/build/global-state/types.d.ts +2 -1
  9. package/ios/LinkPreview/LinkZoomTransition.swift +19 -15
  10. package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.module → 58.0.23/expo.modules.router-58.0.23.module} +7 -7
  11. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.module.md5 +1 -0
  12. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.module.sha1 +1 -0
  13. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.module.sha256 +1 -0
  14. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.module.sha512 +1 -0
  15. package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.pom → 58.0.23/expo.modules.router-58.0.23.pom} +1 -1
  16. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.pom.md5 +1 -0
  17. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.pom.sha1 +1 -0
  18. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.pom.sha256 +1 -0
  19. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.23/expo.modules.router-58.0.23.pom.sha512 +1 -0
  20. package/package.json +4 -4
  21. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.md5 +0 -1
  22. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha1 +0 -1
  23. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha256 +0 -1
  24. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha512 +0 -1
  25. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.md5 +0 -1
  26. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha1 +0 -1
  27. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha256 +0 -1
  28. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha512 +0 -1
  29. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar → 58.0.23/expo.modules.router-58.0.23-sources.jar} +0 -0
  30. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.md5 → 58.0.23/expo.modules.router-58.0.23-sources.jar.md5} +0 -0
  31. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha1 → 58.0.23/expo.modules.router-58.0.23-sources.jar.sha1} +0 -0
  32. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha256 → 58.0.23/expo.modules.router-58.0.23-sources.jar.sha256} +0 -0
  33. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha512 → 58.0.23/expo.modules.router-58.0.23-sources.jar.sha512} +0 -0
  34. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar → 58.0.23/expo.modules.router-58.0.23.aar} +0 -0
  35. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.md5 → 58.0.23/expo.modules.router-58.0.23.aar.md5} +0 -0
  36. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha1 → 58.0.23/expo.modules.router-58.0.23.aar.sha1} +0 -0
  37. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha256 → 58.0.23/expo.modules.router-58.0.23.aar.sha256} +0 -0
  38. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha512 → 58.0.23/expo.modules.router-58.0.23.aar.sha512} +0 -0
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.router'
7
- version = '58.0.21'
7
+ version = '58.0.23'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.router"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "58.0.21"
13
+ versionName "58.0.23"
14
14
  }
15
15
  lintOptions {
16
16
  abortOnError false
@@ -121,7 +121,8 @@ function useLinking(ref, { prefixes, filter, config, getInitialURL = ()=>(0, _ge
121
121
  href: path,
122
122
  originalHref: url,
123
123
  options: {
124
- event: 'NAVIGATE'
124
+ event: 'NAVIGATE',
125
+ __internal__popToNavigator: true
125
126
  }
126
127
  }
127
128
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["fork/useLinking.native.ts"],"sourcesContent":[null],"names":["useLinking","linkingHandlers","getInitialPath","prefixes","url","path","extractExpoPathFromURL","startsWith","ref","filter","config","getInitialURL","getInitialURLWithTimeout","subscribe","listener","callback","subscription","Linking","addEventListener","removeEventListener","bind","remove","getStateFromPath","getStateFromPathDefault","routerConfig","use","RouterConfigContext","enqueue","useEnqueueRoutingIntent","useEffect","process","env","NODE_ENV","undefined","length","console","error","join","trim","handler","Symbol","push","index","indexOf","splice","getStateFromURL","useEffectEvent","segments","getRouteSegmentsFromState","current","getRootState","getInitialState","useCallback","createInitialState","shouldParseURL","parsedState","routeNode","withLoadedLayouts","createSeededRootState","completeParsedState","ROOT_CHAIN","then","navigation","state","rootState","routes","some","r","routeNames","includes","name","type","payload","href","originalHref","options","event"],"mappings":"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"}
1
+ {"version":3,"sources":["fork/useLinking.native.ts"],"sourcesContent":[null],"names":["useLinking","linkingHandlers","getInitialPath","prefixes","url","path","extractExpoPathFromURL","startsWith","ref","filter","config","getInitialURL","getInitialURLWithTimeout","subscribe","listener","callback","subscription","Linking","addEventListener","removeEventListener","bind","remove","getStateFromPath","getStateFromPathDefault","routerConfig","use","RouterConfigContext","enqueue","useEnqueueRoutingIntent","useEffect","process","env","NODE_ENV","undefined","length","console","error","join","trim","handler","Symbol","push","index","indexOf","splice","getStateFromURL","useEffectEvent","segments","getRouteSegmentsFromState","current","getRootState","getInitialState","useCallback","createInitialState","shouldParseURL","parsedState","routeNode","withLoadedLayouts","createSeededRootState","completeParsedState","ROOT_CHAIN","then","navigation","state","rootState","routes","some","r","routeNames","includes","name","type","payload","href","originalHref","options","event","__internal__popToNavigator"],"mappings":"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"}
@@ -40,7 +40,10 @@ function getNavigateAction(baseHref, options, config, type, withAnchor, singular
40
40
  type: type ?? 'NAVIGATE',
41
41
  payload: {
42
42
  singular,
43
- __internal__PreviewKey: previewKey
43
+ __internal__PreviewKey: previewKey,
44
+ ...options.__internal__popToNavigator ? {
45
+ pop: true
46
+ } : undefined
44
47
  }
45
48
  },
46
49
  withAnchor,
@@ -1 +1 @@
1
- {"version":3,"sources":["global-state/getNavigationAction.ts"],"sourcesContent":[null],"names":["getNavigateAction","baseHref","options","config","type","withAnchor","singular","previewKey","navigationState","linking","routeNode","Error","routeInfo","getRouteInfoFromState","href","applyRedirects","resolveHrefStringWithSegments","redirects","state","getStateFromPath","segments","routes","length","status","internalParams","__internal__previewId","undefined","INTERNAL_EXPO_ROUTER_PREVIEW_ID_PARAM_NAME","action","resolveNavigationDestination","targetState","registry","payload","__internal__PreviewKey"],"mappings":";;;;+BA2BgBA;;;eAAAA;;;oCAzBe;sBACe;kCAIvC;uCAI+B;8CACO;AAetC,SAASA,kBACdC,QAAgB,EAChBC,OAAsB,EACtBC,MAA4B,EAC5BC,IAAwB,EACxBC,UAA+B,EAC/BC,QAAqC,EACrCC,UAA8B,EAC9BC,eAAgC;IAEhC,IAAI,CAACL,OAAOM,OAAO,IAAI,CAACN,OAAOO,SAAS,EAAE;QACxC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,YAAYC,IAAAA,4CAAqB,EAACL;IACxC,MAAMM,OAAOC,IAAAA,kCAAc,EACzBC,IAAAA,mCAA6B,EAACf,UAAUW,WAAWV,UACnDC,OAAOc,SAAS;IAGlB,MAAMC,QAAQf,OAAOM,OAAO,CAACU,gBAAgB,CAAEL,MAAMX,OAAOM,OAAO,CAACN,MAAM,EAAES,UAAUQ,QAAQ;IAC9F,IAAI,CAACF,SAASA,MAAMG,MAAM,CAACC,MAAM,KAAK,GAAG;QACvC,OAAO;YAAEC,QAAQ;YAAWT;QAAK;IACnC;IAEA,MAAMU,iBAA2C;QAC/C,GAAItB,QAAQuB,qBAAqB,KAAKC,YAClC;YACE,CAACC,4DAA0C,CAAC,EAAEzB,QAAQuB,qBAAqB;QAC7E,IACA,CAAC,CAAC;IACR;IACA,MAAMG,SAASC,IAAAA,0DAA4B,EAAC;QAC1CC,aAAaZ;QACbV;QACAE,WAAWP,OAAOO,SAAS;QAC3BqB,UAAU5B,OAAO4B,QAAQ;QACzBH,QAAQ;YACNxB,MAAMA,QAAQ;YACd4B,SAAS;gBAAE1B;gBAAU2B,wBAAwB1B;YAAW;QAC1D;QACAF;QACAmB;IACF;IAEA,OAAO;QAAED,QAAQ;QAAUK;IAAO;AACpC"}
1
+ {"version":3,"sources":["global-state/getNavigationAction.ts"],"sourcesContent":[null],"names":["getNavigateAction","baseHref","options","config","type","withAnchor","singular","previewKey","navigationState","linking","routeNode","Error","routeInfo","getRouteInfoFromState","href","applyRedirects","resolveHrefStringWithSegments","redirects","state","getStateFromPath","segments","routes","length","status","internalParams","__internal__previewId","undefined","INTERNAL_EXPO_ROUTER_PREVIEW_ID_PARAM_NAME","action","resolveNavigationDestination","targetState","registry","payload","__internal__PreviewKey","__internal__popToNavigator","pop"],"mappings":";;;;+BA2BgBA;;;eAAAA;;;oCAzBe;sBACe;kCAIvC;uCAI+B;8CACO;AAetC,SAASA,kBACdC,QAAgB,EAChBC,OAAsB,EACtBC,MAA4B,EAC5BC,IAAwB,EACxBC,UAA+B,EAC/BC,QAAqC,EACrCC,UAA8B,EAC9BC,eAAgC;IAEhC,IAAI,CAACL,OAAOM,OAAO,IAAI,CAACN,OAAOO,SAAS,EAAE;QACxC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,YAAYC,IAAAA,4CAAqB,EAACL;IACxC,MAAMM,OAAOC,IAAAA,kCAAc,EACzBC,IAAAA,mCAA6B,EAACf,UAAUW,WAAWV,UACnDC,OAAOc,SAAS;IAGlB,MAAMC,QAAQf,OAAOM,OAAO,CAACU,gBAAgB,CAAEL,MAAMX,OAAOM,OAAO,CAACN,MAAM,EAAES,UAAUQ,QAAQ;IAC9F,IAAI,CAACF,SAASA,MAAMG,MAAM,CAACC,MAAM,KAAK,GAAG;QACvC,OAAO;YAAEC,QAAQ;YAAWT;QAAK;IACnC;IAEA,MAAMU,iBAA2C;QAC/C,GAAItB,QAAQuB,qBAAqB,KAAKC,YAClC;YACE,CAACC,4DAA0C,CAAC,EAAEzB,QAAQuB,qBAAqB;QAC7E,IACA,CAAC,CAAC;IACR;IACA,MAAMG,SAASC,IAAAA,0DAA4B,EAAC;QAC1CC,aAAaZ;QACbV;QACAE,WAAWP,OAAOO,SAAS;QAC3BqB,UAAU5B,OAAO4B,QAAQ;QACzBH,QAAQ;YACNxB,MAAMA,QAAQ;YACd4B,SAAS;gBACP1B;gBACA2B,wBAAwB1B;gBACxB,GAAIL,QAAQgC,0BAA0B,GAAG;oBAAEC,KAAK;gBAAK,IAAIT,SAAS;YACpE;QACF;QACArB;QACAmB;IACF;IAEA,OAAO;QAAED,QAAQ;QAAUK;IAAO;AACpC"}
@@ -23,6 +23,7 @@ const _stateKeys = require("../react-navigation/routers/stateKeys");
23
23
  const _utils = require("../react-navigation/routers/utils");
24
24
  const _routeNode = require("../routeNode");
25
25
  const _sortRoutes = require("../sortRoutes");
26
+ const _getSingularId = require("../utils/getSingularId");
26
27
  function _interop_require_default(obj) {
27
28
  return obj && obj.__esModule ? obj : {
28
29
  default: obj
@@ -83,20 +84,34 @@ function resolveNavigationDestination({ targetState, navigationState, routeNode,
83
84
  targetState: target,
84
85
  navigationState: current,
85
86
  routeNode: node,
87
+ rootRouteNode: routeNode,
86
88
  registry,
87
89
  action: resolvedAction,
88
90
  withAnchor,
89
91
  internalParams
90
92
  });
91
93
  }
92
- function createResolvedAction({ targetState, navigationState, routeNode, registry, action, withAnchor = false, internalParams = {} }) {
94
+ function createResolvedAction({ targetState, navigationState, routeNode, rootRouteNode, registry, action, withAnchor = false, internalParams = {} }) {
93
95
  const targetRoute = getFocusedRoute(targetState);
94
96
  if (!targetRoute) {
95
97
  return action;
96
98
  }
97
99
  const params = (0, _navigationParams.appendInternalExpoRouterParams)(targetRoute.params, internalParams) ?? {};
100
+ const childTarget = targetRoute.state;
101
+ const childNode = findDestinationNode(routeNode, targetRoute.name);
102
+ const { pop, ...actionPayload } = action.payload;
103
+ const shouldPop = pop === true && shouldPopTo({
104
+ targetRoute,
105
+ navigationState,
106
+ routeNode,
107
+ rootRouteNode,
108
+ childNode
109
+ });
98
110
  const payload = {
99
- ...action.payload,
111
+ ...actionPayload,
112
+ ...shouldPop ? {
113
+ pop
114
+ } : undefined,
100
115
  name: targetRoute.name,
101
116
  params,
102
117
  ...targetRoute.path !== undefined ? {
@@ -109,8 +124,6 @@ function createResolvedAction({ targetState, navigationState, routeNode, registr
109
124
  };
110
125
  const result = registry.get(navigationState.key)?.reduce(navigationState, baseAction);
111
126
  const selectedRoute = getSelection(result)?.route;
112
- const childTarget = targetRoute.state;
113
- const childNode = findDestinationNode(routeNode, targetRoute.name);
114
127
  if (!childTarget || !childNode) {
115
128
  return baseAction;
116
129
  }
@@ -120,11 +133,13 @@ function createResolvedAction({ targetState, navigationState, routeNode, registr
120
133
  targetState: childTarget,
121
134
  navigationState: selectedRoute?.state,
122
135
  routeNode: childNode,
136
+ rootRouteNode,
123
137
  registry,
124
138
  withAnchor,
125
139
  internalParams,
126
140
  parentChain,
127
- previewKey: action.payload.__internal__PreviewKey
141
+ previewKey: action.payload.__internal__PreviewKey,
142
+ pop: pop === true
128
143
  });
129
144
  return {
130
145
  ...baseAction,
@@ -134,7 +149,7 @@ function createResolvedAction({ targetState, navigationState, routeNode, registr
134
149
  }
135
150
  };
136
151
  }
137
- function resolveState({ targetState, navigationState, routeNode, registry, withAnchor, internalParams, parentChain, previewKey }) {
152
+ function resolveState({ targetState, navigationState, routeNode, rootRouteNode, registry, withAnchor, internalParams, parentChain, previewKey, pop }) {
138
153
  if (navigationState?.stale !== false || !registry.has(navigationState.key)) {
139
154
  return createDestinationState(targetState, routeNode, withAnchor, internalParams, parentChain);
140
155
  }
@@ -146,11 +161,15 @@ function resolveState({ targetState, navigationState, routeNode, registry, withA
146
161
  targetState: targetState,
147
162
  navigationState,
148
163
  routeNode,
164
+ rootRouteNode,
149
165
  registry,
150
166
  action: {
151
167
  type: 'NAVIGATE',
152
168
  payload: {
153
- __internal__PreviewKey: previewKey
169
+ __internal__PreviewKey: previewKey,
170
+ ...pop ? {
171
+ pop
172
+ } : undefined
154
173
  }
155
174
  },
156
175
  withAnchor,
@@ -236,6 +255,26 @@ function routesMatch(targetRoute, currentRoute) {
236
255
  const dynamic = (0, _matchers.matchDynamicName)(targetRoute.name);
237
256
  return !dynamic || targetRoute.params?.[dynamic.name] === currentRoute.params?.[dynamic.name];
238
257
  }
258
+ /**
259
+ * Whether a `pop` request should apply to the target in this navigator. This follows React
260
+ * Navigation's `getActionFromState`, which incoming links used before: the root layout's navigator
261
+ * pops only to a route that holds a navigator, and every navigator below it pops to the target
262
+ * screen too. Stacks pop to the last route with the target's name, so for a dynamic route that
263
+ * route must also have the target's params; otherwise the link pushes a new instance instead of
264
+ * taking over another one.
265
+ */ function shouldPopTo({ targetRoute, navigationState, routeNode, rootRouteNode, childNode }) {
266
+ const isRootLayoutNavigator = routeNode === rootRouteNode && targetRoute.name !== _constants.INTERNAL_SLOT_NAME;
267
+ const holdsNavigator = targetRoute.state !== undefined || (childNode?.children.length ?? 0) > 0;
268
+ if (isRootLayoutNavigator && !holdsNavigator) {
269
+ return false;
270
+ }
271
+ const popTarget = navigationState.routes.findLast((route)=>route.name === targetRoute.name);
272
+ return !popTarget || (0, _getSingularId.getSingularId)(targetRoute.name, {
273
+ params: targetRoute.params
274
+ }) === (0, _getSingularId.getSingularId)(popTarget.name, {
275
+ params: popTarget.params
276
+ });
277
+ }
239
278
  function findDestinationNode(routeNode, routeName) {
240
279
  return routeName === _constants.INTERNAL_SLOT_NAME ? routeNode : (0, _routeNode.findRouteNodeByName)(routeNode, routeName);
241
280
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["global-state/resolveNavigationDestination.ts"],"sourcesContent":[null],"names":["resolveNavigationDestination","supportedActionTypes","Set","targetState","navigationState","routeNode","registry","action","withAnchor","internalParams","has","type","Error","target","current","node","descended","targetRoute","getFocusedRoute","currentRoute","routes","find","route","name","index","childNode","findDestinationNode","childTarget","state","childState","routesMatch","stale","key","childRoute","probeAction","payload","params","appendInternalExpoRouterParams","getSelection","get","reduce","undefined","resolvedAction","source","createResolvedAction","path","baseAction","result","selectedRoute","parentChain","getChainFromRouteKey","createRouteKeyMinter","mint","resolveState","previewKey","__internal__PreviewKey","markState","createDestinationState","selection","isEqual","initialRouteName","getValidInitialRouteName","routeNames","children","sort","sortRoutesWithInitial","map","child","createInitialState","includes","console","warn","hasAnchor","destination","minter","destinationRouteKey","findRouteNodeByName","destinationRoute","routeKeySeq","length","dynamic","matchDynamicName","routeName","INTERNAL_SLOT_NAME","isActionHandled","affectedRouteKey","__internal__routerActionState"],"mappings":"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"}
1
+ {"version":3,"sources":["global-state/resolveNavigationDestination.ts"],"sourcesContent":[null],"names":["resolveNavigationDestination","supportedActionTypes","Set","targetState","navigationState","routeNode","registry","action","withAnchor","internalParams","has","type","Error","target","current","node","descended","targetRoute","getFocusedRoute","currentRoute","routes","find","route","name","index","childNode","findDestinationNode","childTarget","state","childState","routesMatch","stale","key","childRoute","probeAction","payload","params","appendInternalExpoRouterParams","getSelection","get","reduce","undefined","resolvedAction","source","createResolvedAction","rootRouteNode","pop","actionPayload","shouldPop","shouldPopTo","path","baseAction","result","selectedRoute","parentChain","getChainFromRouteKey","createRouteKeyMinter","mint","resolveState","previewKey","__internal__PreviewKey","markState","createDestinationState","selection","isEqual","initialRouteName","getValidInitialRouteName","routeNames","children","sort","sortRoutesWithInitial","map","child","createInitialState","includes","console","warn","hasAnchor","destination","minter","destinationRouteKey","findRouteNodeByName","destinationRoute","routeKeySeq","length","dynamic","matchDynamicName","isRootLayoutNavigator","INTERNAL_SLOT_NAME","holdsNavigator","popTarget","findLast","getSingularId","routeName","isActionHandled","affectedRouteKey","__internal__routerActionState"],"mappings":"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"}
@@ -30,7 +30,8 @@ export type LinkToOptions = {
30
30
  dangerouslySingular?: SingularOptions;
31
31
  __internal__PreviewKey?: string;
32
32
  __internal__previewId?: string;
33
+ __internal__popToNavigator?: boolean;
33
34
  };
34
- export type NavigationOptions = Omit<LinkToOptions, 'event'>;
35
+ export type NavigationOptions = Omit<LinkToOptions, 'event' | '__internal__popToNavigator'>;
35
36
  export type TransitionOptions = Pick<LinkToOptions, 'inTransition'>;
36
37
  export type NavigationTransitionMode = 'always' | 'never' | 'preload-only';
@@ -309,19 +309,24 @@ class LinkZoomTransitionEnabler: LinkZoomExpoView {
309
309
  if let controller = self.findViewController() {
310
310
  if #available(iOS 18.0, *) {
311
311
  let options = UIViewController.Transition.ZoomOptions()
312
-
313
- options.alignmentRectProvider = { [weak self] context in
314
- guard let self else { return nil }
312
+ // The providers must not depend on `self`. When JS pops the screen (for example with `router.back()`),
313
+ // React unmounts this view before UIKit asks for the source view of the dismiss transition.
314
+ let identifier = self.zoomTransitionSourceIdentifier
315
+ let sourceRepository = self.sourceRepository
316
+ let alignmentViewRepository = self.alignmentViewRepository
317
+ let logger = self.logger
318
+
319
+ options.alignmentRectProvider = { context in
315
320
  guard
316
- let sourceInfo = self.sourceRepository?.getSource(
317
- identifier: self.zoomTransitionSourceIdentifier
321
+ let sourceInfo = sourceRepository?.getSource(
322
+ identifier: identifier
318
323
  )
319
324
  else {
320
325
  return nil
321
326
  }
322
327
  guard
323
- let alignmentView = self.alignmentViewRepository?.get(
324
- identifier: self.zoomTransitionSourceIdentifier
328
+ let alignmentView = alignmentViewRepository?.get(
329
+ identifier: identifier
325
330
  )
326
331
  else {
327
332
  return sourceInfo.alignment
@@ -334,7 +339,7 @@ class LinkZoomTransitionEnabler: LinkZoomExpoView {
334
339
  if sourceInfo.animateAspectRatioChange,
335
340
  let sourceView = sourceInfo.view
336
341
  {
337
- return self.calculateAdjustedRect(rect, toMatch: sourceView.bounds.size)
342
+ return Self.calculateAdjustedRect(rect, toMatch: sourceView.bounds.size)
338
343
  }
339
344
  return rect
340
345
  }
@@ -351,18 +356,17 @@ class LinkZoomTransitionEnabler: LinkZoomExpoView {
351
356
  return true
352
357
  }
353
358
  }
354
- controller.preferredTransition = .zoom(options: options) { [weak self] _ in
355
- guard let self else { return nil }
356
- let sourceInfo = self.sourceRepository?.getSource(
357
- identifier: self.zoomTransitionSourceIdentifier
359
+ controller.preferredTransition = .zoom(options: options) { [weak logger] _ in
360
+ let sourceInfo = sourceRepository?.getSource(
361
+ identifier: identifier
358
362
  )
359
363
  var view: UIView? = sourceInfo?.view
360
364
  if let linkPreviewView = view as? NativeLinkPreviewView {
361
365
  view = linkPreviewView.directChild
362
366
  }
363
367
  guard let view else {
364
- self.logger?.warn(
365
- "[expo-router] No source view found for identifier \(self.zoomTransitionSourceIdentifier) to enable zoom transition. This is most likely a bug in expo-router."
368
+ logger?.warn(
369
+ "[expo-router] No source view found for identifier \(identifier) to enable zoom transition. This is most likely a bug in expo-router."
366
370
  )
367
371
  return nil
368
372
  }
@@ -377,7 +381,7 @@ class LinkZoomTransitionEnabler: LinkZoomExpoView {
377
381
  }
378
382
  }
379
383
 
380
- private func calculateAdjustedRect(
384
+ private static func calculateAdjustedRect(
381
385
  _ rect: CGRect,
382
386
  toMatch sourceSize: CGSize
383
387
  ) -> CGRect {
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.router",
5
5
  "module": "expo.modules.router",
6
- "version": "58.0.21",
6
+ "version": "58.0.23",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.router-58.0.21.aar",
28
- "url": "expo.modules.router-58.0.21.aar",
27
+ "name": "expo.modules.router-58.0.23.aar",
28
+ "url": "expo.modules.router-58.0.23.aar",
29
29
  "size": 16133,
30
30
  "sha512": "32ccb33ae7df2d0abc96fb77d87c776773a15d8de0818d83bbca865581f60f85a0c280a75de2f770590ccabadb78874cec32689a50a0bc29b6a9025ed6c592b1",
31
31
  "sha256": "5a620cdcb41c5bc3c82e954ffd02de6b85954cd41bde5b5694ac9d5f5f25aa8f",
@@ -74,8 +74,8 @@
74
74
  ],
75
75
  "files": [
76
76
  {
77
- "name": "expo.modules.router-58.0.21.aar",
78
- "url": "expo.modules.router-58.0.21.aar",
77
+ "name": "expo.modules.router-58.0.23.aar",
78
+ "url": "expo.modules.router-58.0.23.aar",
79
79
  "size": 16133,
80
80
  "sha512": "32ccb33ae7df2d0abc96fb77d87c776773a15d8de0818d83bbca865581f60f85a0c280a75de2f770590ccabadb78874cec32689a50a0bc29b6a9025ed6c592b1",
81
81
  "sha256": "5a620cdcb41c5bc3c82e954ffd02de6b85954cd41bde5b5694ac9d5f5f25aa8f",
@@ -94,8 +94,8 @@
94
94
  },
95
95
  "files": [
96
96
  {
97
- "name": "expo.modules.router-58.0.21-sources.jar",
98
- "url": "expo.modules.router-58.0.21-sources.jar",
97
+ "name": "expo.modules.router-58.0.23-sources.jar",
98
+ "url": "expo.modules.router-58.0.23-sources.jar",
99
99
  "size": 1986,
100
100
  "sha512": "c1d7dd32034c271b8e8d511c2e8ea7705b8378c4e2859d4bf810cd75ea33bbd4c212c9bbb5f0d27ae90f8f599fbb8f865b37001791bb539e94b90413396e6139",
101
101
  "sha256": "3027e02be198959073884cd5afb9b46f39f0d7396a590f6840bb63ef37010adc",
@@ -0,0 +1 @@
1
+ 163ab867f6be88d1789eff43ea88efb03160f2274765ed15a45fc3d38aa2ad36
@@ -0,0 +1 @@
1
+ f8de088df7d5ce0e88b63640f49f630146e4dba24eb983c840d971f78170bc4b2e4090a1279636e6e4206c95c451ca4123289706dbfcdf6b2ce9defa993c9956
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>expo.modules.router</groupId>
11
11
  <artifactId>expo.modules.router</artifactId>
12
- <version>58.0.21</version>
12
+ <version>58.0.23</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.router</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 39d11c1fe5cd8634fa36ba396842487f175f310488c741b8b6eba39c4c99c7e1
@@ -0,0 +1 @@
1
+ 588e5c39900bb3354747f0603813010b22af95961161ff6f479b45f4d46224888ced3947a7c6d34bc651bef2f32dbe715e8abdd9c5e30fa7c68460e2a24296a2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-router",
3
- "version": "58.0.21",
3
+ "version": "58.0.23",
4
4
  "description": "Expo Router is a file-based router for React Native and web applications.",
5
5
  "keywords": [
6
6
  "expo",
@@ -278,7 +278,7 @@
278
278
  "dependencies": {
279
279
  "@expo/log-box": "^58.0.12",
280
280
  "@expo/metro-runtime": "^58.0.14",
281
- "@expo/schema-utils": "^58.0.1",
281
+ "@expo/schema-utils": "^58.0.2",
282
282
  "@radix-ui/react-slot": "^1.2.0",
283
283
  "@radix-ui/react-tabs": "^1.1.12",
284
284
  "@react-native-masked-view/masked-view": "^0.3.2",
@@ -296,7 +296,7 @@
296
296
  "standard-navigation": "^0.0.5"
297
297
  },
298
298
  "devDependencies": {
299
- "@expo/ui": "^58.0.19",
299
+ "@expo/ui": "^58.0.20",
300
300
  "@jest/globals": "^30.0.0",
301
301
  "@testing-library/dom": "^10.4.0",
302
302
  "@testing-library/jest-dom": "^6.9.1",
@@ -323,7 +323,7 @@
323
323
  "peerDependencies": {
324
324
  "@expo/log-box": "^58.0.12",
325
325
  "@expo/metro-runtime": "^58.0.14",
326
- "@expo/ui": "^58.0.19",
326
+ "@expo/ui": "^58.0.20",
327
327
  "@testing-library/react-native": ">= 14.0.0",
328
328
  "expo": "*",
329
329
  "expo-constants": "^58.0.12",
@@ -1 +0,0 @@
1
- c18b72adfb1c1f95fb1044bc07e85ea602f41dd14635277edc3b57468fa68c62
@@ -1 +0,0 @@
1
- 1e1616162862ec9f648a16ff1300badb055fb288c219066afcd6c4928941bbec880facaa003015c9b10fa8383baf449f63563d1bb21a73b94f175ae76d42ba02
@@ -1 +0,0 @@
1
- a46a467eb3290df99bbfc217ffb883b27be47c7a086d4c9cac8c864350485850
@@ -1 +0,0 @@
1
- d4841d6404811239cce2b00be920d2a21999167ee63d6d1ddb69654b88ad5ea74c782d1e3f805fa40d59f5d4827226d586ba3037c86ac12900220f84f4732c44