expo-router 56.1.1 → 56.1.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.
Files changed (47) hide show
  1. package/android/build.gradle +2 -2
  2. package/build/exports.d.ts +1 -1
  3. package/build/exports.d.ts.map +1 -1
  4. package/build/exports.js +2 -1
  5. package/build/exports.js.map +1 -1
  6. package/build/hooks.d.ts +6 -0
  7. package/build/hooks.d.ts.map +1 -1
  8. package/build/hooks.js +12 -0
  9. package/build/hooks.js.map +1 -1
  10. package/build/react-navigation/drawer/views/DrawerToggleButton.js +1 -1
  11. package/build/react-navigation/drawer/views/DrawerToggleButton.js.map +1 -1
  12. package/expo-module.config.json +1 -1
  13. package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.module → 56.1.3/expo.modules.router-56.1.3.module} +7 -7
  14. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.module.md5 +1 -0
  15. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.module.sha1 +1 -0
  16. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.module.sha256 +1 -0
  17. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.module.sha512 +1 -0
  18. package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.pom → 56.1.3/expo.modules.router-56.1.3.pom} +1 -1
  19. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.pom.md5 +1 -0
  20. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.pom.sha1 +1 -0
  21. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.pom.sha256 +1 -0
  22. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.3/expo.modules.router-56.1.3.pom.sha512 +1 -0
  23. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml +4 -4
  24. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.md5 +1 -1
  25. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha1 +1 -1
  26. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha256 +1 -1
  27. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha512 +1 -1
  28. package/package.json +14 -14
  29. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.module.md5 +0 -1
  30. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.module.sha1 +0 -1
  31. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.module.sha256 +0 -1
  32. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.module.sha512 +0 -1
  33. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.pom.md5 +0 -1
  34. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.pom.sha1 +0 -1
  35. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.pom.sha256 +0 -1
  36. package/local-maven-repo/expo/modules/router/expo.modules.router/56.1.1/expo.modules.router-56.1.1.pom.sha512 +0 -1
  37. package/plugin/tsconfig.tsbuildinfo +0 -1
  38. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1-sources.jar → 56.1.3/expo.modules.router-56.1.3-sources.jar} +0 -0
  39. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1-sources.jar.md5 → 56.1.3/expo.modules.router-56.1.3-sources.jar.md5} +0 -0
  40. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1-sources.jar.sha1 → 56.1.3/expo.modules.router-56.1.3-sources.jar.sha1} +0 -0
  41. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1-sources.jar.sha256 → 56.1.3/expo.modules.router-56.1.3-sources.jar.sha256} +0 -0
  42. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1-sources.jar.sha512 → 56.1.3/expo.modules.router-56.1.3-sources.jar.sha512} +0 -0
  43. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.aar → 56.1.3/expo.modules.router-56.1.3.aar} +0 -0
  44. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.aar.md5 → 56.1.3/expo.modules.router-56.1.3.aar.md5} +0 -0
  45. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.aar.sha1 → 56.1.3/expo.modules.router-56.1.3.aar.sha1} +0 -0
  46. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.aar.sha256 → 56.1.3/expo.modules.router-56.1.3.aar.sha256} +0 -0
  47. /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.1.1/expo.modules.router-56.1.1.aar.sha512 → 56.1.3/expo.modules.router-56.1.3.aar.sha512} +0 -0
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.router'
7
- version = '56.1.1'
7
+ version = '56.1.3'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.router"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "56.1.1"
13
+ versionName "56.1.3"
14
14
  }
15
15
  lintOptions {
16
16
  abortOnError false
@@ -1,5 +1,5 @@
1
1
  import { Navigator, Slot } from './views/Navigator';
2
- export { useRouter, useUnstableGlobalHref, usePathname, useNavigationContainerRef, useGlobalSearchParams, useLocalSearchParams, useSegments, useRootNavigation, useRootNavigationState, useLoaderData, } from './hooks';
2
+ export { useRouter, useUnstableGlobalHref, usePathname, useNavigationContainerRef, useGlobalSearchParams, useLocalSearchParams, useSegments, useRootNavigation, useRootNavigationState, useLoaderData, useCurrentRouteInfo, } from './hooks';
3
3
  export { router, type ImperativeRouter } from './imperative-api';
4
4
  export { withLayoutContext } from './layouts/withLayoutContext';
5
5
  export { Navigator, Slot };
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,mBAAmB,SAAS,CAAC;AAE7B,OAAO,EACL,KAAK,EACL,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,EACL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EACV,kCAAkC,EAClC,mCAAmC,EACnC,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,mBAAmB,SAAS,CAAC;AAE7B,OAAO,EACL,KAAK,EACL,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,EACL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EACV,kCAAkC,EAClC,mCAAmC,EACnC,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC"}
package/build/exports.js CHANGED
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ExperimentalStack = exports.Tabs = exports.unstable_navigationEvents = exports.VectorIcon = exports.Label = exports.Icon = exports.Badge = exports.useRoute = exports.useScrollToTop = exports.useRoutePath = exports.useTheme = exports.ThemeProvider = exports.DefaultTheme = exports.DarkTheme = exports.useIsFocused = exports.useFocusEffect = exports.useNavigation = exports.SplashScreen = exports.SuspenseFallback = exports.ErrorBoundary = exports.useSitemap = exports.Sitemap = exports.Unmatched = exports.ExpoRoot = exports.Slot = exports.Navigator = exports.withLayoutContext = exports.router = exports.useLoaderData = exports.useRootNavigationState = exports.useRootNavigation = exports.useSegments = exports.useLocalSearchParams = exports.useGlobalSearchParams = exports.useNavigationContainerRef = exports.usePathname = exports.useUnstableGlobalHref = exports.useRouter = void 0;
36
+ exports.ExperimentalStack = exports.Tabs = exports.unstable_navigationEvents = exports.VectorIcon = exports.Label = exports.Icon = exports.Badge = exports.useRoute = exports.useScrollToTop = exports.useRoutePath = exports.useTheme = exports.ThemeProvider = exports.DefaultTheme = exports.DarkTheme = exports.useIsFocused = exports.useFocusEffect = exports.useNavigation = exports.SplashScreen = exports.SuspenseFallback = exports.ErrorBoundary = exports.useSitemap = exports.Sitemap = exports.Unmatched = exports.ExpoRoot = exports.Slot = exports.Navigator = exports.withLayoutContext = exports.router = exports.useCurrentRouteInfo = exports.useLoaderData = exports.useRootNavigationState = exports.useRootNavigation = exports.useSegments = exports.useLocalSearchParams = exports.useGlobalSearchParams = exports.useNavigationContainerRef = exports.usePathname = exports.useUnstableGlobalHref = exports.useRouter = void 0;
37
37
  // Expo Router API
38
38
  const Navigator_1 = require("./views/Navigator");
39
39
  Object.defineProperty(exports, "Navigator", { enumerable: true, get: function () { return Navigator_1.Navigator; } });
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "useSegments", { enumerable: true, get: function
49
49
  Object.defineProperty(exports, "useRootNavigation", { enumerable: true, get: function () { return hooks_1.useRootNavigation; } });
50
50
  Object.defineProperty(exports, "useRootNavigationState", { enumerable: true, get: function () { return hooks_1.useRootNavigationState; } });
51
51
  Object.defineProperty(exports, "useLoaderData", { enumerable: true, get: function () { return hooks_1.useLoaderData; } });
52
+ Object.defineProperty(exports, "useCurrentRouteInfo", { enumerable: true, get: function () { return hooks_1.useCurrentRouteInfo; } });
52
53
  var imperative_api_1 = require("./imperative-api");
53
54
  Object.defineProperty(exports, "router", { enumerable: true, get: function () { return imperative_api_1.router; } });
54
55
  var withLayoutContext_1 = require("./layouts/withLayoutContext");
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,iDAAoD;AAkB3C,0FAlBA,qBAAS,OAkBA;AAAE,qFAlBA,gBAAI,OAkBA;AAhBxB,iCAWiB;AAVf,kGAAA,SAAS,OAAA;AACT,8GAAA,qBAAqB,OAAA;AACrB,oGAAA,WAAW,OAAA;AACX,kHAAA,yBAAyB,OAAA;AACzB,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,oGAAA,WAAW,OAAA;AACX,0GAAA,iBAAiB,OAAA;AACjB,+GAAA,sBAAsB,OAAA;AACtB,sGAAA,aAAa,OAAA;AAGf,mDAAiE;AAAxD,wGAAA,MAAM,OAAA;AAEf,iEAAgE;AAAvD,sHAAA,iBAAiB,OAAA;AAG1B,oBAAoB;AACpB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAChB,iDAAkE;AAAzD,wGAAA,UAAU,OAAA;AAEnB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AACtB,6DAAwF;AAA/E,oHAAA,gBAAgB,OAAA;AAGzB,WAAW;AACX;;GAEG;AACH,+DAA+C;AAE/C,mBAAmB;AACnB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAuE;AAA9D,gHAAA,cAAc,OAAA;AACvB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,yEAAwE;AAA/D,sGAAA,SAAS,OAAA;AAClB,+EAA8E;AAArE,4GAAA,YAAY,OAAA;AACrB,+EAA8E;AAArE,8GAAA,aAAa,OAAA;AACtB,qEAAoE;AAA3D,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,gHAAA,cAAc,OAAA;AACvB,6DAA4D;AAAnD,oGAAA,QAAQ,OAAA;AAOjB,2CASsB;AARpB,mGAAA,KAAK,OAAA;AAEL,kGAAA,IAAI,OAAA;AAEJ,mGAAA,KAAK,OAAA;AAEL,wGAAA,UAAU,OAAA;AAIZ,uDAA+D;AAAtD,6HAAA,yBAAyB,OAAA;AAElC;;GAEG;AACH,uCAAsC;AAA7B,4FAAA,IAAI,OAAA;AAEb,mEAAiE;AAAxD,uHAAA,iBAAiB,OAAA","sourcesContent":["// Expo Router API\nimport { Navigator, Slot } from './views/Navigator';\n\nexport {\n useRouter,\n useUnstableGlobalHref,\n usePathname,\n useNavigationContainerRef,\n useGlobalSearchParams,\n useLocalSearchParams,\n useSegments,\n useRootNavigation,\n useRootNavigationState,\n useLoaderData,\n} from './hooks';\n\nexport { router, type ImperativeRouter } from './imperative-api';\n\nexport { withLayoutContext } from './layouts/withLayoutContext';\nexport { Navigator, Slot };\n\n// Expo Router Views\nexport { ExpoRoot } from './ExpoRoot';\nexport { Unmatched } from './views/Unmatched';\nexport { Sitemap } from './views/Sitemap';\nexport { useSitemap, type SitemapType } from './views/useSitemap';\nexport type { ErrorBoundaryProps } from './views/Try';\nexport { ErrorBoundary } from './views/ErrorBoundary';\nexport { SuspenseFallback, type SuspenseFallbackProps } from './views/SuspenseFallback';\nexport type { ScreenProps } from './useScreens';\n\n// Platform\n/**\n * @hidden\n */\nexport * as SplashScreen from './views/Splash';\n\n// React Navigation\nexport { useNavigation } from './useNavigation';\nexport { useFocusEffect, type EffectCallback } from './useFocusEffect';\nexport { useIsFocused } from './useIsFocused';\nexport type { ResultState } from './fork/getStateFromPath';\n\nexport { DarkTheme } from './react-navigation/native/theming/DarkTheme';\nexport { DefaultTheme } from './react-navigation/native/theming/DefaultTheme';\nexport { ThemeProvider } from './react-navigation/core/theming/ThemeProvider';\nexport { useTheme } from './react-navigation/core/theming/useTheme';\nexport { useRoutePath } from './react-navigation/native/useRoutePath';\nexport { useScrollToTop } from './react-navigation/native/useScrollToTop';\nexport { useRoute } from './react-navigation/core/useRoute';\n\nexport type { RedirectConfig } from './getRoutesCore';\nexport type { SingularOptions } from './useScreens';\n\nexport type * from './types';\n\nexport {\n Badge,\n type BadgeProps,\n Icon,\n type IconProps,\n Label,\n type LabelProps,\n VectorIcon,\n type VectorIconProps,\n} from './primitives';\n\nexport { unstable_navigationEvents } from './navigationEvents';\n\n/**\n * @deprecated Use `import { Tabs } from 'expo-router/js-tabs'` instead.\n */\nexport { Tabs } from './layouts/Tabs';\n\nexport { ExperimentalStack } from './layouts/experimental-stack';\nexport type {\n ExperimentalStackNavigationOptions,\n ExperimentalStackNavigationEventMap,\n ExperimentalStackNavigationProp,\n ExperimentalStackScreenProps,\n} from './layouts/experimental-stack';\n"]}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,iDAAoD;AAmB3C,0FAnBA,qBAAS,OAmBA;AAAE,qFAnBA,gBAAI,OAmBA;AAjBxB,iCAYiB;AAXf,kGAAA,SAAS,OAAA;AACT,8GAAA,qBAAqB,OAAA;AACrB,oGAAA,WAAW,OAAA;AACX,kHAAA,yBAAyB,OAAA;AACzB,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,oGAAA,WAAW,OAAA;AACX,0GAAA,iBAAiB,OAAA;AACjB,+GAAA,sBAAsB,OAAA;AACtB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AAGrB,mDAAiE;AAAxD,wGAAA,MAAM,OAAA;AAEf,iEAAgE;AAAvD,sHAAA,iBAAiB,OAAA;AAG1B,oBAAoB;AACpB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAChB,iDAAkE;AAAzD,wGAAA,UAAU,OAAA;AAEnB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AACtB,6DAAwF;AAA/E,oHAAA,gBAAgB,OAAA;AAGzB,WAAW;AACX;;GAEG;AACH,+DAA+C;AAE/C,mBAAmB;AACnB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAuE;AAA9D,gHAAA,cAAc,OAAA;AACvB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,yEAAwE;AAA/D,sGAAA,SAAS,OAAA;AAClB,+EAA8E;AAArE,4GAAA,YAAY,OAAA;AACrB,+EAA8E;AAArE,8GAAA,aAAa,OAAA;AACtB,qEAAoE;AAA3D,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,gHAAA,cAAc,OAAA;AACvB,6DAA4D;AAAnD,oGAAA,QAAQ,OAAA;AAOjB,2CASsB;AARpB,mGAAA,KAAK,OAAA;AAEL,kGAAA,IAAI,OAAA;AAEJ,mGAAA,KAAK,OAAA;AAEL,wGAAA,UAAU,OAAA;AAIZ,uDAA+D;AAAtD,6HAAA,yBAAyB,OAAA;AAElC;;GAEG;AACH,uCAAsC;AAA7B,4FAAA,IAAI,OAAA;AAEb,mEAAiE;AAAxD,uHAAA,iBAAiB,OAAA","sourcesContent":["// Expo Router API\nimport { Navigator, Slot } from './views/Navigator';\n\nexport {\n useRouter,\n useUnstableGlobalHref,\n usePathname,\n useNavigationContainerRef,\n useGlobalSearchParams,\n useLocalSearchParams,\n useSegments,\n useRootNavigation,\n useRootNavigationState,\n useLoaderData,\n useCurrentRouteInfo,\n} from './hooks';\n\nexport { router, type ImperativeRouter } from './imperative-api';\n\nexport { withLayoutContext } from './layouts/withLayoutContext';\nexport { Navigator, Slot };\n\n// Expo Router Views\nexport { ExpoRoot } from './ExpoRoot';\nexport { Unmatched } from './views/Unmatched';\nexport { Sitemap } from './views/Sitemap';\nexport { useSitemap, type SitemapType } from './views/useSitemap';\nexport type { ErrorBoundaryProps } from './views/Try';\nexport { ErrorBoundary } from './views/ErrorBoundary';\nexport { SuspenseFallback, type SuspenseFallbackProps } from './views/SuspenseFallback';\nexport type { ScreenProps } from './useScreens';\n\n// Platform\n/**\n * @hidden\n */\nexport * as SplashScreen from './views/Splash';\n\n// React Navigation\nexport { useNavigation } from './useNavigation';\nexport { useFocusEffect, type EffectCallback } from './useFocusEffect';\nexport { useIsFocused } from './useIsFocused';\nexport type { ResultState } from './fork/getStateFromPath';\n\nexport { DarkTheme } from './react-navigation/native/theming/DarkTheme';\nexport { DefaultTheme } from './react-navigation/native/theming/DefaultTheme';\nexport { ThemeProvider } from './react-navigation/core/theming/ThemeProvider';\nexport { useTheme } from './react-navigation/core/theming/useTheme';\nexport { useRoutePath } from './react-navigation/native/useRoutePath';\nexport { useScrollToTop } from './react-navigation/native/useScrollToTop';\nexport { useRoute } from './react-navigation/core/useRoute';\n\nexport type { RedirectConfig } from './getRoutesCore';\nexport type { SingularOptions } from './useScreens';\n\nexport type * from './types';\n\nexport {\n Badge,\n type BadgeProps,\n Icon,\n type IconProps,\n Label,\n type LabelProps,\n VectorIcon,\n type VectorIconProps,\n} from './primitives';\n\nexport { unstable_navigationEvents } from './navigationEvents';\n\n/**\n * @deprecated Use `import { Tabs } from 'expo-router/js-tabs'` instead.\n */\nexport { Tabs } from './layouts/Tabs';\n\nexport { ExperimentalStack } from './layouts/experimental-stack';\nexport type {\n ExperimentalStackNavigationOptions,\n ExperimentalStackNavigationEventMap,\n ExperimentalStackNavigationProp,\n ExperimentalStackScreenProps,\n} from './layouts/experimental-stack';\n"]}
package/build/hooks.d.ts CHANGED
@@ -203,4 +203,10 @@ type LoaderFunctionResult<T extends LoaderFunction<any>> = T extends LoaderFunct
203
203
  * }
204
204
  */
205
205
  export declare function useLoaderData<T extends LoaderFunction<any> = any>(): LoaderFunctionResult<T>;
206
+ /**
207
+ * Returns route info for a screen it is called from.
208
+ *
209
+ * @experimental
210
+ */
211
+ export declare function useCurrentRouteInfo(): import("./global-state/getRouteInfoFromState").UrlObject | undefined;
206
212
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,EAAS,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzD,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG1F,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAWxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,8FAEhC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,kGAExC;AAiCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAM5C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,WAAW,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC;AAEjG;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,SAAS,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAKrF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,OAAO,CAAC;AAEb;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAKnC;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,OAAO,CAAC;AAEb;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAkCnC,wBAAgB,eAAe,CAAC,EAAE,MAAc,EAAE;;CAAK,GAAG,eAAe,CAsBxE;AAcD,KAAK,oBAAoB,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,IACrD,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAwC5F"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EAAS,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzD,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG1F,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAWxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,8FAEhC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,kGAExC;AAiCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CAM5C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,WAAW,CAAC,SAAS,SAAS,SAAS,GAAG,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC;AAEjG;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,SAAS,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAKrF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,OAAO,CAAC;AAEb;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAKnC;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,OAAO,CAAC;AAEb;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,KACtD,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAkCnC,wBAAgB,eAAe,CAAC,EAAE,MAAc,EAAE;;CAAK,GAAG,eAAe,CAsBxE;AAcD,KAAK,oBAAoB,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,IACrD,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAwC5F;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,yEAIlC"}
package/build/hooks.js CHANGED
@@ -46,10 +46,12 @@ exports.useGlobalSearchParams = useGlobalSearchParams;
46
46
  exports.useLocalSearchParams = useLocalSearchParams;
47
47
  exports.useSearchParams = useSearchParams;
48
48
  exports.useLoaderData = useLoaderData;
49
+ exports.useCurrentRouteInfo = useCurrentRouteInfo;
49
50
  const react_1 = __importStar(require("react"));
50
51
  const Route_1 = require("./Route");
51
52
  const constants_1 = require("./constants");
52
53
  const getRouteInfoFromState_1 = require("./global-state/getRouteInfoFromState");
54
+ const routeInfoCache_1 = require("./global-state/routeInfoCache");
53
55
  const router_store_1 = require("./global-state/router-store");
54
56
  Object.defineProperty(exports, "useRouteInfo", { enumerable: true, get: function () { return router_store_1.useRouteInfo; } });
55
57
  const imperative_api_1 = require("./imperative-api");
@@ -298,4 +300,14 @@ function useLoaderData() {
298
300
  }
299
301
  return result;
300
302
  }
303
+ /**
304
+ * Returns route info for a screen it is called from.
305
+ *
306
+ * @experimental
307
+ */
308
+ function useCurrentRouteInfo() {
309
+ const state = (0, native_1.useStateForPath)();
310
+ const routeInfo = (0, react_1.useMemo)(() => (state ? (0, routeInfoCache_1.getCachedRouteInfo)(state) : undefined), [state]);
311
+ return routeInfo;
312
+ }
301
313
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { LoaderFunction } from 'expo-server';\nimport React, { use, useMemo } from 'react';\n\nimport { LocalRouteParamsContext, useContextKey } from './Route';\nimport { INTERNAL_SLOT_NAME } from './constants';\nimport { getRouteInfoFromState } from './global-state/getRouteInfoFromState';\nimport { store, useRouteInfo } from './global-state/router-store';\nimport type { ImperativeRouter } from './imperative-api';\nimport { router } from './imperative-api';\nimport { usePreviewInfo } from './link/preview/PreviewRouteContext';\nimport { LoaderCacheContext } from './loaders/LoaderCache';\nimport { ServerDataLoaderContext } from './loaders/ServerDataLoaderContext';\nimport { getLoaderData } from './loaders/getLoaderData';\nimport { fetchLoader } from './loaders/utils';\nimport type { NavigationProp, NavigationState } from './react-navigation/native';\nimport { useNavigation, useStateForPath } from './react-navigation/native';\nimport type { RouteParams, RouteSegments, UnknownOutputParams, RoutePath } from './types';\nimport { getSingularId } from './useScreens';\n\nexport { useRouteInfo };\n\n/**\n * Returns the [navigation state](https://reactnavigation.org/docs/navigation-state/)\n * of the navigator which contains the current screen.\n *\n * @example\n * ```tsx\n * import { useRootNavigationState } from 'expo-router';\n *\n * export default function Route() {\n * const { routes } = useRootNavigationState();\n *\n * return <Text>{routes[0].name}</Text>;\n * }\n * ```\n */\nexport function useRootNavigationState(): NavigationState {\n const parent =\n // We assume that this is called from routes in __root\n // Users cannot customize the generated Sitemap or NotFound routes, so we should be safe\n useNavigation<NavigationProp<object, never, string>>().getParent(INTERNAL_SLOT_NAME);\n if (!parent) {\n throw new Error(\n 'useRootNavigationState was called from a generated route. This is likely a bug in Expo Router.'\n );\n }\n return parent.getState();\n}\n\n/**\n * @deprecated Use [`useNavigationContainerRef`](#usenavigationcontainerref) instead,\n * which returns a React `ref`.\n */\nexport function useRootNavigation() {\n return store.navigationRef.current;\n}\n\n/**\n * @return The root `<NavigationContainer />` ref for the app. The `ref.current` may be `null`\n * if the `<NavigationContainer />` hasn't mounted yet.\n */\nexport function useNavigationContainerRef() {\n return store.navigationRef;\n}\n\nconst displayWarningForProp = (prop: string) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `router.${prop} should not be used in a previewed screen. To fix this issue, wrap navigation calls with 'if (!isPreview) { ... }'.`\n );\n }\n};\n\nconst createNOOPWithWarning = (prop: string) => () => displayWarningForProp(prop);\n\nconst routerWithWarnings: ImperativeRouter = {\n back: createNOOPWithWarning('back'),\n canGoBack: () => {\n displayWarningForProp('canGoBack');\n return false;\n },\n push: createNOOPWithWarning('push'),\n navigate: createNOOPWithWarning('navigate'),\n replace: createNOOPWithWarning('replace'),\n dismiss: createNOOPWithWarning('dismiss'),\n dismissTo: createNOOPWithWarning('dismissTo'),\n dismissAll: createNOOPWithWarning('dismissAll'),\n canDismiss: () => {\n displayWarningForProp('canDismiss');\n return false;\n },\n setParams: createNOOPWithWarning('setParams'),\n reload: createNOOPWithWarning('reload'),\n prefetch: createNOOPWithWarning('prefetch'),\n};\n\n/**\n *\n * Returns the [Router](#router) object for imperative navigation.\n *\n * @example\n *```tsx\n * import { useRouter } from 'expo-router';\n * import { Text } from 'react-native';\n *\n * export default function Route() {\n * const router = useRouter();\n *\n * return (\n * <Text onPress={() => router.push('/home')}>Go Home</Text>\n * );\n *}\n * ```\n */\nexport function useRouter(): ImperativeRouter {\n const { isPreview } = usePreviewInfo();\n if (isPreview) {\n return routerWithWarnings;\n }\n return router;\n}\n\n/**\n * @private\n * @returns The current global pathname with query params attached. This may change in the future to include the hostname\n * from a predefined universal link. For example, `/foobar?hey=world` becomes `https://acme.dev/foobar?hey=world`.\n */\nexport function useUnstableGlobalHref(): string {\n return useRouteInfo().unstable_globalHref;\n}\n\n/**\n * Returns a list of selected file segments for the currently selected route. Segments are not normalized,\n * so they will be the same as the file path. For example, `/[id]?id=normal` becomes `[\"[id]\"]`.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useSegments } from 'expo-router';\n *\n * export default function Route() {\n * // segments = [\"profile\", \"[user]\"]\n * const segments = useSegments();\n *\n * return <Text>Hello</Text>;\n * }\n * ```\n *\n *\n * `useSegments` can be typed using an abstract. Consider the following file structure:\n *\n * ```md\n * - app\n * - [user]\n * - index.tsx\n * - followers.tsx\n * - settings.tsx\n * ```\n *\n *\n * This can be strictly typed using the following abstract with `useSegments` hook:\n *\n * ```tsx\n * const [first, second] = useSegments<['settings'] | ['[user]'] | ['[user]', 'followers']>()\n * ```\n */\nexport function useSegments<TSegments extends RoutePath = RoutePath>(): RouteSegments<TSegments>;\n\n/**\n * @hidden\n */\nexport function useSegments<TSegments extends RouteSegments<RoutePath>>(): TSegments;\nexport function useSegments() {\n return useRouteInfo().segments;\n}\n\n/**\n * Returns the currently selected route location without search parameters. For example, `/acme?foo=bar` returns `/acme`.\n * Segments will be normalized. For example, `/[id]?id=normal` becomes `/normal`.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { usePathname } from 'expo-router';\n *\n * export default function Route() {\n * // pathname = \"/profile/baconbrix\"\n * const pathname = usePathname();\n *\n * return <Text>Pathname: {pathname}</Text>;\n * }\n * ```\n */\nexport function usePathname(): string {\n return useRouteInfo().pathname;\n}\n\n/**\n * @hidden\n */\nexport function useGlobalSearchParams<\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): TParams;\n\n/**\n * @hidden\n */\nexport function useGlobalSearchParams<TRoute extends RoutePath>(): RouteParams<TRoute>;\n\n/**\n * Returns URL parameters for globally selected route, including dynamic path segments.\n * This function updates even when the route is not focused. Useful for analytics or\n * other background operations that don't draw to the screen.\n *\n * Route URL example: `acme://profile/baconbrix?extra=info`.\n *\n * When querying search params in a stack, opt-towards using\n * [`useLocalSearchParams`](#uselocalsearchparams) because it will only update when the route is focused.\n *\n * > **Note:** For usage information, see\n * [Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters).\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useGlobalSearchParams } from 'expo-router';\n *\n * export default function Route() {\n * // user=baconbrix & extra=info\n * const { user, extra } = useGlobalSearchParams();\n *\n * return <Text>User: {user}</Text>;\n * }\n * ```\n */\nexport function useGlobalSearchParams<\n TRoute extends RoutePath,\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): RouteParams<TRoute> & TParams;\nexport function useGlobalSearchParams() {\n return useRouteInfo().params;\n}\n\n/**\n * @hidden\n */\nexport function useLocalSearchParams<\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): TParams;\n\n/**\n * @hidden\n */\nexport function useLocalSearchParams<TRoute extends RoutePath>(): RouteParams<TRoute>;\n\n/**\n * Returns the URL parameters for the contextually focused route. Useful for stacks where you may push a new screen\n * that changes the query parameters. For dynamic routes, both the route parameters and the search parameters are returned.\n *\n * Route URL example: `acme://profile/baconbrix?extra=info`.\n *\n * To observe updates even when the invoking route is not focused, use [`useGlobalSearchParams`](#useglobalsearchparams).\n *\n * > **Note:** For usage information, see\n * [Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters).\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useLocalSearchParams } from 'expo-router';\n *\n * export default function Route() {\n * // user=baconbrix & extra=info\n * const { user, extra } = useLocalSearchParams();\n *\n * return <Text>User: {user}</Text>;\n * }\n */\nexport function useLocalSearchParams<\n TRoute extends RoutePath,\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): RouteParams<TRoute> & TParams;\nexport function useLocalSearchParams() {\n const params = React.use(LocalRouteParamsContext) ?? {};\n const { params: previewParams } = usePreviewInfo();\n return Object.fromEntries(\n Object.entries(previewParams ?? params).map(([key, value]) => {\n // React Navigation doesn't remove \"undefined\" values from the params object, and you cannot remove them via\n // navigation.setParams as it shallow merges. Hence, we hide them here\n if (value === undefined) {\n return [key, undefined];\n }\n\n if (Array.isArray(value)) {\n return [\n key,\n value.map((v) => {\n try {\n return decodeURIComponent(v);\n } catch {\n return v;\n }\n }),\n ];\n } else {\n try {\n return [key, decodeURIComponent(value as string)];\n } catch {\n return [key, value];\n }\n }\n })\n ) as any;\n}\n\nexport function useSearchParams({ global = false } = {}): URLSearchParams {\n const globalRef = React.useRef(global);\n if (process.env.NODE_ENV !== 'production') {\n if (global !== globalRef.current) {\n console.warn(\n `Detected change in 'global' option of useSearchParams. This value cannot change between renders`\n );\n }\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const params = global ? useGlobalSearchParams() : useLocalSearchParams();\n const entries = Object.entries(params).flatMap(([key, value]) => {\n if (global) {\n if (key === 'params') return [];\n if (key === 'screen') return [];\n }\n\n return Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]];\n });\n\n return new ReadOnlyURLSearchParams(entries);\n}\n\nclass ReadOnlyURLSearchParams extends URLSearchParams {\n set() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n append() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n delete() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n}\n\ntype LoaderFunctionResult<T extends LoaderFunction<any>> =\n T extends LoaderFunction<infer R> ? R : unknown;\n\n/**\n * Returns the result of the `loader` function for the calling route.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useLoaderData } from 'expo-router';\n *\n * export function loader() {\n * return Promise.resolve({ foo: 'bar' }};\n * }\n *\n * export default function Route() {\n * const data = useLoaderData<typeof loader>(); // { foo: 'bar' }\n *\n * return <Text>Data: {JSON.stringify(data)}</Text>;\n * }\n */\nexport function useLoaderData<T extends LoaderFunction<any> = any>(): LoaderFunctionResult<T> {\n const serverDataLoaderContext = use(ServerDataLoaderContext);\n const loaderCache = use(LoaderCacheContext);\n\n const stateForPath = useStateForPath();\n const contextKey = useContextKey();\n\n const resolvedPath = useMemo(() => {\n const routeInfo = getRouteInfoFromState(stateForPath);\n const contextPath = contextKey.startsWith('/') ? contextKey.slice(1) : contextKey;\n const resolvedPathname = `/${getSingularId(contextPath, { params: routeInfo.params })}`;\n const searchString = routeInfo.searchParams?.toString() || '';\n\n return searchString ? `${resolvedPathname}?${searchString}` : resolvedPathname;\n }, [contextKey, stateForPath]);\n\n // First invocation of this hook will happen server-side, so we look up the loaded data from context\n if (serverDataLoaderContext) {\n return serverDataLoaderContext[resolvedPath];\n }\n\n // The second invocation happens after the client has hydrated on initial load, so we look up the data injected\n // by `<PreloadedDataScript />` using `globalThis.__EXPO_ROUTER_LOADER_DATA__`\n if (typeof window !== 'undefined' && globalThis.__EXPO_ROUTER_LOADER_DATA__) {\n if (globalThis.__EXPO_ROUTER_LOADER_DATA__[resolvedPath]) {\n return globalThis.__EXPO_ROUTER_LOADER_DATA__[resolvedPath];\n }\n }\n\n const result = getLoaderData<LoaderFunctionResult<T>>({\n resolvedPath,\n cache: loaderCache,\n fetcher: fetchLoader,\n });\n\n if (result instanceof Promise) {\n return use(result);\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { LoaderFunction } from 'expo-server';\nimport React, { use, useMemo } from 'react';\n\nimport { LocalRouteParamsContext, useContextKey } from './Route';\nimport { INTERNAL_SLOT_NAME } from './constants';\nimport { getRouteInfoFromState } from './global-state/getRouteInfoFromState';\nimport { getCachedRouteInfo } from './global-state/routeInfoCache';\nimport { store, useRouteInfo } from './global-state/router-store';\nimport type { ImperativeRouter } from './imperative-api';\nimport { router } from './imperative-api';\nimport { usePreviewInfo } from './link/preview/PreviewRouteContext';\nimport { LoaderCacheContext } from './loaders/LoaderCache';\nimport { ServerDataLoaderContext } from './loaders/ServerDataLoaderContext';\nimport { getLoaderData } from './loaders/getLoaderData';\nimport { fetchLoader } from './loaders/utils';\nimport type { NavigationProp, NavigationState } from './react-navigation/native';\nimport { useNavigation, useStateForPath } from './react-navigation/native';\nimport type { RouteParams, RouteSegments, UnknownOutputParams, RoutePath } from './types';\nimport { getSingularId } from './useScreens';\n\nexport { useRouteInfo };\n\n/**\n * Returns the [navigation state](https://reactnavigation.org/docs/navigation-state/)\n * of the navigator which contains the current screen.\n *\n * @example\n * ```tsx\n * import { useRootNavigationState } from 'expo-router';\n *\n * export default function Route() {\n * const { routes } = useRootNavigationState();\n *\n * return <Text>{routes[0].name}</Text>;\n * }\n * ```\n */\nexport function useRootNavigationState(): NavigationState {\n const parent =\n // We assume that this is called from routes in __root\n // Users cannot customize the generated Sitemap or NotFound routes, so we should be safe\n useNavigation<NavigationProp<object, never, string>>().getParent(INTERNAL_SLOT_NAME);\n if (!parent) {\n throw new Error(\n 'useRootNavigationState was called from a generated route. This is likely a bug in Expo Router.'\n );\n }\n return parent.getState();\n}\n\n/**\n * @deprecated Use [`useNavigationContainerRef`](#usenavigationcontainerref) instead,\n * which returns a React `ref`.\n */\nexport function useRootNavigation() {\n return store.navigationRef.current;\n}\n\n/**\n * @return The root `<NavigationContainer />` ref for the app. The `ref.current` may be `null`\n * if the `<NavigationContainer />` hasn't mounted yet.\n */\nexport function useNavigationContainerRef() {\n return store.navigationRef;\n}\n\nconst displayWarningForProp = (prop: string) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `router.${prop} should not be used in a previewed screen. To fix this issue, wrap navigation calls with 'if (!isPreview) { ... }'.`\n );\n }\n};\n\nconst createNOOPWithWarning = (prop: string) => () => displayWarningForProp(prop);\n\nconst routerWithWarnings: ImperativeRouter = {\n back: createNOOPWithWarning('back'),\n canGoBack: () => {\n displayWarningForProp('canGoBack');\n return false;\n },\n push: createNOOPWithWarning('push'),\n navigate: createNOOPWithWarning('navigate'),\n replace: createNOOPWithWarning('replace'),\n dismiss: createNOOPWithWarning('dismiss'),\n dismissTo: createNOOPWithWarning('dismissTo'),\n dismissAll: createNOOPWithWarning('dismissAll'),\n canDismiss: () => {\n displayWarningForProp('canDismiss');\n return false;\n },\n setParams: createNOOPWithWarning('setParams'),\n reload: createNOOPWithWarning('reload'),\n prefetch: createNOOPWithWarning('prefetch'),\n};\n\n/**\n *\n * Returns the [Router](#router) object for imperative navigation.\n *\n * @example\n *```tsx\n * import { useRouter } from 'expo-router';\n * import { Text } from 'react-native';\n *\n * export default function Route() {\n * const router = useRouter();\n *\n * return (\n * <Text onPress={() => router.push('/home')}>Go Home</Text>\n * );\n *}\n * ```\n */\nexport function useRouter(): ImperativeRouter {\n const { isPreview } = usePreviewInfo();\n if (isPreview) {\n return routerWithWarnings;\n }\n return router;\n}\n\n/**\n * @private\n * @returns The current global pathname with query params attached. This may change in the future to include the hostname\n * from a predefined universal link. For example, `/foobar?hey=world` becomes `https://acme.dev/foobar?hey=world`.\n */\nexport function useUnstableGlobalHref(): string {\n return useRouteInfo().unstable_globalHref;\n}\n\n/**\n * Returns a list of selected file segments for the currently selected route. Segments are not normalized,\n * so they will be the same as the file path. For example, `/[id]?id=normal` becomes `[\"[id]\"]`.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useSegments } from 'expo-router';\n *\n * export default function Route() {\n * // segments = [\"profile\", \"[user]\"]\n * const segments = useSegments();\n *\n * return <Text>Hello</Text>;\n * }\n * ```\n *\n *\n * `useSegments` can be typed using an abstract. Consider the following file structure:\n *\n * ```md\n * - app\n * - [user]\n * - index.tsx\n * - followers.tsx\n * - settings.tsx\n * ```\n *\n *\n * This can be strictly typed using the following abstract with `useSegments` hook:\n *\n * ```tsx\n * const [first, second] = useSegments<['settings'] | ['[user]'] | ['[user]', 'followers']>()\n * ```\n */\nexport function useSegments<TSegments extends RoutePath = RoutePath>(): RouteSegments<TSegments>;\n\n/**\n * @hidden\n */\nexport function useSegments<TSegments extends RouteSegments<RoutePath>>(): TSegments;\nexport function useSegments() {\n return useRouteInfo().segments;\n}\n\n/**\n * Returns the currently selected route location without search parameters. For example, `/acme?foo=bar` returns `/acme`.\n * Segments will be normalized. For example, `/[id]?id=normal` becomes `/normal`.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { usePathname } from 'expo-router';\n *\n * export default function Route() {\n * // pathname = \"/profile/baconbrix\"\n * const pathname = usePathname();\n *\n * return <Text>Pathname: {pathname}</Text>;\n * }\n * ```\n */\nexport function usePathname(): string {\n return useRouteInfo().pathname;\n}\n\n/**\n * @hidden\n */\nexport function useGlobalSearchParams<\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): TParams;\n\n/**\n * @hidden\n */\nexport function useGlobalSearchParams<TRoute extends RoutePath>(): RouteParams<TRoute>;\n\n/**\n * Returns URL parameters for globally selected route, including dynamic path segments.\n * This function updates even when the route is not focused. Useful for analytics or\n * other background operations that don't draw to the screen.\n *\n * Route URL example: `acme://profile/baconbrix?extra=info`.\n *\n * When querying search params in a stack, opt-towards using\n * [`useLocalSearchParams`](#uselocalsearchparams) because it will only update when the route is focused.\n *\n * > **Note:** For usage information, see\n * [Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters).\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useGlobalSearchParams } from 'expo-router';\n *\n * export default function Route() {\n * // user=baconbrix & extra=info\n * const { user, extra } = useGlobalSearchParams();\n *\n * return <Text>User: {user}</Text>;\n * }\n * ```\n */\nexport function useGlobalSearchParams<\n TRoute extends RoutePath,\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): RouteParams<TRoute> & TParams;\nexport function useGlobalSearchParams() {\n return useRouteInfo().params;\n}\n\n/**\n * @hidden\n */\nexport function useLocalSearchParams<\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): TParams;\n\n/**\n * @hidden\n */\nexport function useLocalSearchParams<TRoute extends RoutePath>(): RouteParams<TRoute>;\n\n/**\n * Returns the URL parameters for the contextually focused route. Useful for stacks where you may push a new screen\n * that changes the query parameters. For dynamic routes, both the route parameters and the search parameters are returned.\n *\n * Route URL example: `acme://profile/baconbrix?extra=info`.\n *\n * To observe updates even when the invoking route is not focused, use [`useGlobalSearchParams`](#useglobalsearchparams).\n *\n * > **Note:** For usage information, see\n * [Local versus global search parameters](/router/reference/url-parameters/#local-versus-global-url-parameters).\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useLocalSearchParams } from 'expo-router';\n *\n * export default function Route() {\n * // user=baconbrix & extra=info\n * const { user, extra } = useLocalSearchParams();\n *\n * return <Text>User: {user}</Text>;\n * }\n */\nexport function useLocalSearchParams<\n TRoute extends RoutePath,\n TParams extends UnknownOutputParams = UnknownOutputParams,\n>(): RouteParams<TRoute> & TParams;\nexport function useLocalSearchParams() {\n const params = React.use(LocalRouteParamsContext) ?? {};\n const { params: previewParams } = usePreviewInfo();\n return Object.fromEntries(\n Object.entries(previewParams ?? params).map(([key, value]) => {\n // React Navigation doesn't remove \"undefined\" values from the params object, and you cannot remove them via\n // navigation.setParams as it shallow merges. Hence, we hide them here\n if (value === undefined) {\n return [key, undefined];\n }\n\n if (Array.isArray(value)) {\n return [\n key,\n value.map((v) => {\n try {\n return decodeURIComponent(v);\n } catch {\n return v;\n }\n }),\n ];\n } else {\n try {\n return [key, decodeURIComponent(value as string)];\n } catch {\n return [key, value];\n }\n }\n })\n ) as any;\n}\n\nexport function useSearchParams({ global = false } = {}): URLSearchParams {\n const globalRef = React.useRef(global);\n if (process.env.NODE_ENV !== 'production') {\n if (global !== globalRef.current) {\n console.warn(\n `Detected change in 'global' option of useSearchParams. This value cannot change between renders`\n );\n }\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const params = global ? useGlobalSearchParams() : useLocalSearchParams();\n const entries = Object.entries(params).flatMap(([key, value]) => {\n if (global) {\n if (key === 'params') return [];\n if (key === 'screen') return [];\n }\n\n return Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]];\n });\n\n return new ReadOnlyURLSearchParams(entries);\n}\n\nclass ReadOnlyURLSearchParams extends URLSearchParams {\n set() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n append() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n delete() {\n throw new Error('The URLSearchParams object return from useSearchParams is read-only');\n }\n}\n\ntype LoaderFunctionResult<T extends LoaderFunction<any>> =\n T extends LoaderFunction<infer R> ? R : unknown;\n\n/**\n * Returns the result of the `loader` function for the calling route.\n *\n * @example\n * ```tsx app/profile/[user].tsx\n * import { Text } from 'react-native';\n * import { useLoaderData } from 'expo-router';\n *\n * export function loader() {\n * return Promise.resolve({ foo: 'bar' }};\n * }\n *\n * export default function Route() {\n * const data = useLoaderData<typeof loader>(); // { foo: 'bar' }\n *\n * return <Text>Data: {JSON.stringify(data)}</Text>;\n * }\n */\nexport function useLoaderData<T extends LoaderFunction<any> = any>(): LoaderFunctionResult<T> {\n const serverDataLoaderContext = use(ServerDataLoaderContext);\n const loaderCache = use(LoaderCacheContext);\n\n const stateForPath = useStateForPath();\n const contextKey = useContextKey();\n\n const resolvedPath = useMemo(() => {\n const routeInfo = getRouteInfoFromState(stateForPath);\n const contextPath = contextKey.startsWith('/') ? contextKey.slice(1) : contextKey;\n const resolvedPathname = `/${getSingularId(contextPath, { params: routeInfo.params })}`;\n const searchString = routeInfo.searchParams?.toString() || '';\n\n return searchString ? `${resolvedPathname}?${searchString}` : resolvedPathname;\n }, [contextKey, stateForPath]);\n\n // First invocation of this hook will happen server-side, so we look up the loaded data from context\n if (serverDataLoaderContext) {\n return serverDataLoaderContext[resolvedPath];\n }\n\n // The second invocation happens after the client has hydrated on initial load, so we look up the data injected\n // by `<PreloadedDataScript />` using `globalThis.__EXPO_ROUTER_LOADER_DATA__`\n if (typeof window !== 'undefined' && globalThis.__EXPO_ROUTER_LOADER_DATA__) {\n if (globalThis.__EXPO_ROUTER_LOADER_DATA__[resolvedPath]) {\n return globalThis.__EXPO_ROUTER_LOADER_DATA__[resolvedPath];\n }\n }\n\n const result = getLoaderData<LoaderFunctionResult<T>>({\n resolvedPath,\n cache: loaderCache,\n fetcher: fetchLoader,\n });\n\n if (result instanceof Promise) {\n return use(result);\n }\n\n return result;\n}\n\n/**\n * Returns route info for a screen it is called from.\n *\n * @experimental\n */\nexport function useCurrentRouteInfo() {\n const state = useStateForPath();\n const routeInfo = useMemo(() => (state ? getCachedRouteInfo(state) : undefined), [state]);\n return routeInfo;\n}\n"]}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.DrawerToggleButton = DrawerToggleButton;
8
8
  const jsx_runtime_1 = require("react/jsx-runtime");
9
9
  const react_native_1 = require("react-native");
10
- const toggle_drawer_icon_png_1 = __importDefault(require("../../../../../assets/react-navigation/drawer/toggle-drawer-icon.png"));
10
+ const toggle_drawer_icon_png_1 = __importDefault(require("../../../../assets/react-navigation/drawer/toggle-drawer-icon.png"));
11
11
  const elements_1 = require("../../elements");
12
12
  const native_1 = require("../../native");
13
13
  function DrawerToggleButton({ tintColor, accessibilityLabel = 'Show navigation menu', imageSource = toggle_drawer_icon_png_1.default, ...rest }) {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerToggleButton.js","sourceRoot":"","sources":["../../../../src/react-navigation/drawer/views/DrawerToggleButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;AAgBb,gDAsBC;;AArCD,+CAA4F;AAE5F,kIAAoG;AACpG,6CAA8C;AAC9C,yCAAgF;AAWhF,SAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,kBAAkB,GAAG,sBAAsB,EAC3C,WAAW,GAAG,gCAAgB,EAC9B,GAAG,IAAI,EACD;IACN,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAuC,CAAC;IAExE,OAAO,CACL,uBAAC,uBAAY,OACP,IAAI,EACR,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAa,CAAC,YAAY,EAAE,CAAC,YAChE,uBAAC,oBAAK,IACJ,UAAU,EAAC,SAAS,EACpB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,GACW,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAC,CAAC","sourcesContent":["'use client';\nimport { type ColorValue, Image, type ImageSourcePropType, StyleSheet } from 'react-native';\n\nimport toggleDrawerIcon from '../../../../../assets/react-navigation/drawer/toggle-drawer-icon.png';\nimport { HeaderButton } from '../../elements';\nimport { DrawerActions, type ParamListBase, useNavigation } from '../../native';\nimport type { DrawerNavigationProp } from '../types';\n\ntype Props = {\n accessibilityLabel?: string;\n pressColor?: ColorValue;\n pressOpacity?: number;\n tintColor?: ColorValue;\n imageSource?: ImageSourcePropType;\n};\n\nexport function DrawerToggleButton({\n tintColor,\n accessibilityLabel = 'Show navigation menu',\n imageSource = toggleDrawerIcon,\n ...rest\n}: Props) {\n const navigation = useNavigation<DrawerNavigationProp<ParamListBase>>();\n\n return (\n <HeaderButton\n {...rest}\n accessibilityLabel={accessibilityLabel}\n onPress={() => navigation.dispatch(DrawerActions.toggleDrawer())}>\n <Image\n resizeMode=\"contain\"\n source={imageSource}\n fadeDuration={0}\n tintColor={tintColor}\n style={styles.icon}\n />\n </HeaderButton>\n );\n}\n\nconst styles = StyleSheet.create({\n icon: {\n height: 24,\n width: 24,\n marginVertical: 8,\n marginHorizontal: 5,\n },\n});\n"]}
1
+ {"version":3,"file":"DrawerToggleButton.js","sourceRoot":"","sources":["../../../../src/react-navigation/drawer/views/DrawerToggleButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;AAgBb,gDAsBC;;AArCD,+CAA4F;AAE5F,+HAAiG;AACjG,6CAA8C;AAC9C,yCAAgF;AAWhF,SAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,kBAAkB,GAAG,sBAAsB,EAC3C,WAAW,GAAG,gCAAgB,EAC9B,GAAG,IAAI,EACD;IACN,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAuC,CAAC;IAExE,OAAO,CACL,uBAAC,uBAAY,OACP,IAAI,EACR,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAa,CAAC,YAAY,EAAE,CAAC,YAChE,uBAAC,oBAAK,IACJ,UAAU,EAAC,SAAS,EACpB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,GACW,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAC,CAAC","sourcesContent":["'use client';\nimport { type ColorValue, Image, type ImageSourcePropType, StyleSheet } from 'react-native';\n\nimport toggleDrawerIcon from '../../../../assets/react-navigation/drawer/toggle-drawer-icon.png';\nimport { HeaderButton } from '../../elements';\nimport { DrawerActions, type ParamListBase, useNavigation } from '../../native';\nimport type { DrawerNavigationProp } from '../types';\n\ntype Props = {\n accessibilityLabel?: string;\n pressColor?: ColorValue;\n pressOpacity?: number;\n tintColor?: ColorValue;\n imageSource?: ImageSourcePropType;\n};\n\nexport function DrawerToggleButton({\n tintColor,\n accessibilityLabel = 'Show navigation menu',\n imageSource = toggleDrawerIcon,\n ...rest\n}: Props) {\n const navigation = useNavigation<DrawerNavigationProp<ParamListBase>>();\n\n return (\n <HeaderButton\n {...rest}\n accessibilityLabel={accessibilityLabel}\n onPress={() => navigation.dispatch(DrawerActions.toggleDrawer())}>\n <Image\n resizeMode=\"contain\"\n source={imageSource}\n fadeDuration={0}\n tintColor={tintColor}\n style={styles.icon}\n />\n </HeaderButton>\n );\n}\n\nconst styles = StyleSheet.create({\n icon: {\n height: 24,\n width: 24,\n marginVertical: 8,\n marginHorizontal: 5,\n },\n});\n"]}
@@ -9,7 +9,7 @@
9
9
  "publication": {
10
10
  "groupId": "expo.modules.router",
11
11
  "artifactId": "expo.modules.router",
12
- "version": "56.1.1",
12
+ "version": "56.1.3",
13
13
  "repository": "local-maven-repo"
14
14
  }
15
15
  }
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.router",
5
5
  "module": "expo.modules.router",
6
- "version": "56.1.1",
6
+ "version": "56.1.3",
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-56.1.1.aar",
28
- "url": "expo.modules.router-56.1.1.aar",
27
+ "name": "expo.modules.router-56.1.3.aar",
28
+ "url": "expo.modules.router-56.1.3.aar",
29
29
  "size": 15835,
30
30
  "sha512": "72b5be73401c4b0a8807373f01bd79e202212f07713d071019c24eb27227a4c8568d6148d0a48338f6955f9dbe713f56e7877d8e3fe0acec28dbb68533953d90",
31
31
  "sha256": "7c41d508ab24d199ead0eb06525957cdd227a73925863865bf2956d48cb707ef",
@@ -74,8 +74,8 @@
74
74
  ],
75
75
  "files": [
76
76
  {
77
- "name": "expo.modules.router-56.1.1.aar",
78
- "url": "expo.modules.router-56.1.1.aar",
77
+ "name": "expo.modules.router-56.1.3.aar",
78
+ "url": "expo.modules.router-56.1.3.aar",
79
79
  "size": 15835,
80
80
  "sha512": "72b5be73401c4b0a8807373f01bd79e202212f07713d071019c24eb27227a4c8568d6148d0a48338f6955f9dbe713f56e7877d8e3fe0acec28dbb68533953d90",
81
81
  "sha256": "7c41d508ab24d199ead0eb06525957cdd227a73925863865bf2956d48cb707ef",
@@ -94,8 +94,8 @@
94
94
  },
95
95
  "files": [
96
96
  {
97
- "name": "expo.modules.router-56.1.1-sources.jar",
98
- "url": "expo.modules.router-56.1.1-sources.jar",
97
+ "name": "expo.modules.router-56.1.3-sources.jar",
98
+ "url": "expo.modules.router-56.1.3-sources.jar",
99
99
  "size": 2326,
100
100
  "sha512": "a1a1537b57bc0d66efbf2bdfd5f514684400b9598e549eaf53c528d1bf32ff42b7826e74fb6e115f8ec0490b9e06ffbb3c3efe9f2f703652c13291ef82b0fa03",
101
101
  "sha256": "2add0f802e663eb9b5f90e086dca0e0e337a1442e15fb372a05945e01ee0d289",
@@ -0,0 +1 @@
1
+ b984d1cab1282207f4dccef9b11fea34669ed5596519f4f1bc842f423befc217
@@ -0,0 +1 @@
1
+ a1e829c39fc6e172189db89b670c1545a5005b16f50e8c9a5fbc21c97cb958507469077bb9aa5f89f5b19a344b1d89b7e89efd317727e25517a913cab1d9be96
@@ -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>56.1.1</version>
12
+ <version>56.1.3</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
+ 78de9680c60826cc911218bbcf0be07634d436a1400c618f7f2e8bdb15444a35
@@ -0,0 +1 @@
1
+ a0222f58199725db066651df2c266a9e798fb09abf2a167ffb69e0ffa3c8cd1da6780ecc1247403f8ccfe013898f60b4c8bb17d45718d515e399c0287d0fcacf
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.router</groupId>
4
4
  <artifactId>expo.modules.router</artifactId>
5
5
  <versioning>
6
- <latest>56.1.1</latest>
7
- <release>56.1.1</release>
6
+ <latest>56.1.3</latest>
7
+ <release>56.1.3</release>
8
8
  <versions>
9
- <version>56.1.1</version>
9
+ <version>56.1.3</version>
10
10
  </versions>
11
- <lastUpdated>20260508193735</lastUpdated>
11
+ <lastUpdated>20260512011707</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 948d291dd70c6125ebde45646d045ad1
1
+ 55b9edabeef9bae2fb9d798b66d4ff0e
@@ -1 +1 @@
1
- ee282880f5281f686f314ff22306d88e85075eef
1
+ 851936224cab470a5cab14d13f4ec3a00c7fa912
@@ -1 +1 @@
1
- 2d0b9afbc2eb98148e6c3a44a5167d4e4494676b2296b8cc8f00a2e036566959
1
+ 13de184d19735246eb379d12d6fd45ed6b66a5a3e32150b3eae3b3661cbb4060
@@ -1 +1 @@
1
- 82f33cc00386ad4ee10bacad400ef008ae17df035fe828ca70a9cf4c919d98a10d898dfa196ef54b4647c83c3246588a8f5eadb971ec4b4c630c1dac5ee4d47d
1
+ d78876c1cc069abec1e63b26c5e2980374bf050ad3badcaf2979d50fcda90adab472fd8c4d868d61c06d1ee53dff92ecb8b992bc9fb0145de32814c0e8ed086d
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-router",
3
- "version": "56.1.1",
3
+ "version": "56.1.3",
4
4
  "description": "Expo Router is a file-based router for React Native and web applications.",
5
5
  "author": "650 Industries, Inc.",
6
6
  "license": "MIT",
@@ -78,19 +78,19 @@
78
78
  "expo"
79
79
  ],
80
80
  "peerDependencies": {
81
- "@expo/log-box": "^56.0.6",
82
- "@expo/metro-runtime": "^56.0.5",
81
+ "@expo/log-box": "^56.0.7",
82
+ "@expo/metro-runtime": "^56.0.6",
83
83
  "@testing-library/react-native": ">= 13.2.0",
84
84
  "expo": "*",
85
- "expo-constants": "^56.0.6",
86
- "expo-linking": "^56.0.4",
85
+ "expo-constants": "^56.0.7",
86
+ "expo-linking": "^56.0.5",
87
87
  "react": "*",
88
88
  "react-dom": "*",
89
89
  "react-native": "*",
90
90
  "react-native-gesture-handler": "*",
91
91
  "react-native-reanimated": "*",
92
92
  "react-native-safe-area-context": ">= 5.4.0",
93
- "react-native-screens": "4.25.0-beta.3",
93
+ "react-native-screens": "^4.25.0",
94
94
  "react-native-web": "*",
95
95
  "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4"
96
96
  },
@@ -130,19 +130,19 @@
130
130
  "@types/react-test-renderer": "^19.1.0",
131
131
  "immer": "^10.1.1",
132
132
  "react-native-gesture-handler": "~2.30.0",
133
- "react-native-reanimated": "~4.3.0",
133
+ "react-native-reanimated": "~4.3.1",
134
134
  "react-native-safe-area-context": "~5.6.2",
135
- "react-native-screens": "4.25.0-beta.3",
135
+ "react-native-screens": "^4.25.0",
136
136
  "react-native-web": "~0.21.0",
137
137
  "react-server-dom-webpack": "~19.0.4",
138
138
  "tsd": "^0.33.0",
139
- "expo": "56.0.0-preview.7"
139
+ "expo": "56.0.0-preview.9"
140
140
  },
141
141
  "dependencies": {
142
- "@expo/log-box": "^56.0.6",
143
- "@expo/metro-runtime": "^56.0.5",
142
+ "@expo/log-box": "^56.0.7",
143
+ "@expo/metro-runtime": "^56.0.6",
144
144
  "@expo/schema-utils": "^56.0.0",
145
- "@expo/ui": "^56.0.4",
145
+ "@expo/ui": "^56.0.5",
146
146
  "@radix-ui/react-slot": "^1.2.0",
147
147
  "@radix-ui/react-tabs": "^1.1.12",
148
148
  "@react-native-masked-view/masked-view": "^0.3.2",
@@ -163,13 +163,13 @@
163
163
  "react-fast-compare": "^3.2.2",
164
164
  "react-is": "^19.1.0",
165
165
  "react-native-drawer-layout": "^4.2.2",
166
- "react-native-screens": "4.25.0-beta.3",
166
+ "react-native-screens": "^4.25.0",
167
167
  "server-only": "^0.0.1",
168
168
  "sf-symbols-typescript": "^2.1.0",
169
169
  "shallowequal": "^1.1.0",
170
170
  "vaul": "^1.1.2"
171
171
  },
172
- "gitHead": "a30353e69ca0d72b9fac5830abc631feda1ba3ae",
172
+ "gitHead": "e3418938a97836a61a9bb12a2467f04929977767",
173
173
  "scripts": {
174
174
  "build": "node ./scripts/build.js",
175
175
  "clean": "expo-module clean",
@@ -1 +0,0 @@
1
- 6500bfb1d4f566871904821a1663a7d052befc791b5456087f1bc52e83cf9787
@@ -1 +0,0 @@
1
- 0cfbba655ee577cb4e76511d9eff45d82a72cf318c8a5b6cf3339c8a6bb9d8c4eb1f018b869cd2402a10d473c45d912245de6a2dc920e01a9fd1c2ac051b3e22
@@ -1 +0,0 @@
1
- fb87d517843c8241c9f74e247ad4968ba2862b37ffaaa297dc0da7c0c299f0b8
@@ -1 +0,0 @@
1
- 7b3664918928a018a8ef711ed6de00635fbd16c632634cae8b9ce8ae0dc3c52e6b02015e6188112797b65a58ff22e0d29859f379719fd7c9ef271719d1281d20
@@ -1 +0,0 @@
1
- {"root":["./src/index.ts","./src/withrouter.ts"],"version":"6.0.3"}