expo-router 58.0.21 → 58.0.22

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 (31) hide show
  1. package/android/build.gradle +2 -2
  2. package/ios/LinkPreview/LinkZoomTransition.swift +19 -15
  3. package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.module → 58.0.22/expo.modules.router-58.0.22.module} +7 -7
  4. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.module.md5 +1 -0
  5. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.module.sha1 +1 -0
  6. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.module.sha256 +1 -0
  7. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.module.sha512 +1 -0
  8. package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.pom → 58.0.22/expo.modules.router-58.0.22.pom} +1 -1
  9. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.pom.md5 +1 -0
  10. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.pom.sha1 +1 -0
  11. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.pom.sha256 +1 -0
  12. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.22/expo.modules.router-58.0.22.pom.sha512 +1 -0
  13. package/package.json +3 -3
  14. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.md5 +0 -1
  15. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha1 +0 -1
  16. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha256 +0 -1
  17. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.module.sha512 +0 -1
  18. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.md5 +0 -1
  19. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha1 +0 -1
  20. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha256 +0 -1
  21. package/local-maven-repo/expo/modules/router/expo.modules.router/58.0.21/expo.modules.router-58.0.21.pom.sha512 +0 -1
  22. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar → 58.0.22/expo.modules.router-58.0.22-sources.jar} +0 -0
  23. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.md5 → 58.0.22/expo.modules.router-58.0.22-sources.jar.md5} +0 -0
  24. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha1 → 58.0.22/expo.modules.router-58.0.22-sources.jar.sha1} +0 -0
  25. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha256 → 58.0.22/expo.modules.router-58.0.22-sources.jar.sha256} +0 -0
  26. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21-sources.jar.sha512 → 58.0.22/expo.modules.router-58.0.22-sources.jar.sha512} +0 -0
  27. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar → 58.0.22/expo.modules.router-58.0.22.aar} +0 -0
  28. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.md5 → 58.0.22/expo.modules.router-58.0.22.aar.md5} +0 -0
  29. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha1 → 58.0.22/expo.modules.router-58.0.22.aar.sha1} +0 -0
  30. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha256 → 58.0.22/expo.modules.router-58.0.22.aar.sha256} +0 -0
  31. /package/local-maven-repo/expo/modules/router/expo.modules.router/{58.0.21/expo.modules.router-58.0.21.aar.sha512 → 58.0.22/expo.modules.router-58.0.22.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.22'
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.22"
14
14
  }
15
15
  lintOptions {
16
16
  abortOnError false
@@ -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.22",
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.22.aar",
28
+ "url": "expo.modules.router-58.0.22.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.22.aar",
78
+ "url": "expo.modules.router-58.0.22.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.22-sources.jar",
98
+ "url": "expo.modules.router-58.0.22-sources.jar",
99
99
  "size": 1986,
100
100
  "sha512": "c1d7dd32034c271b8e8d511c2e8ea7705b8378c4e2859d4bf810cd75ea33bbd4c212c9bbb5f0d27ae90f8f599fbb8f865b37001791bb539e94b90413396e6139",
101
101
  "sha256": "3027e02be198959073884cd5afb9b46f39f0d7396a590f6840bb63ef37010adc",
@@ -0,0 +1 @@
1
+ 544478024c935e6af0163953150c71bfb5c881aa9fc07195859d92c1abdcb758
@@ -0,0 +1 @@
1
+ 1768b119d1b1ee9b0b90a4ceb735d1210f1ef565a6c00cc062f562fa4e822325d2ce0f62336a6dedff48064625ccc4c442acf19e0ef591834fa6759065a20d07
@@ -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.22</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
+ d8983f92db58531d556b507dc71b68b2e66a826d54ff7f3fa5a15fb1eeb5820f
@@ -0,0 +1 @@
1
+ 4b5fcfbb613810cf54fd0f6e38e46140fdf1074888a4f944153f1edee24e25a99a76b422136e33206ca154d4989b761fd5929b11d71bd579d7da127bef8575c1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-router",
3
- "version": "58.0.21",
3
+ "version": "58.0.22",
4
4
  "description": "Expo Router is a file-based router for React Native and web applications.",
5
5
  "keywords": [
6
6
  "expo",
@@ -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