@amazon-devices/react-navigation__native 7.0.9000000000 → 8.0.9000000000-rn-83

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 (232) hide show
  1. package/SystemBundles/c0d77be093c9724f49566be215c67240e6443c16760f772a745108ddaef15503.bundle +9117 -0
  2. package/SystemBundles/c0d77be093c9724f49566be215c67240e6443c16760f772a745108ddaef15503.map +3543 -0
  3. package/SystemModules/amzn__react-navigation__native-8.modules.txt +24 -0
  4. package/SystemModules/amzn__react-navigation__native-8.private.modules.txt +77 -0
  5. package/SystemModules/keplerscript-system-bundle-config.json +4 -4
  6. package/kepler-compatibility.json +2 -2
  7. package/lib/module/Link.js +31 -10
  8. package/lib/module/Link.js.map +1 -1
  9. package/lib/module/LinkingContext.js +7 -3
  10. package/lib/module/LinkingContext.js.map +1 -1
  11. package/lib/module/LocaleDirContext.js +6 -0
  12. package/lib/module/LocaleDirContext.js.map +1 -0
  13. package/lib/module/NavigationContainer.js +87 -59
  14. package/lib/module/NavigationContainer.js.map +1 -1
  15. package/lib/module/ServerContainer.js +20 -10
  16. package/lib/module/ServerContainer.js.map +1 -1
  17. package/lib/module/ServerContext.js +3 -2
  18. package/lib/module/ServerContext.js.map +1 -1
  19. package/lib/module/UnhandledLinkingContext.js +14 -0
  20. package/lib/module/UnhandledLinkingContext.js.map +1 -0
  21. package/lib/module/__stubs__/createStackNavigator.js +18 -0
  22. package/lib/module/__stubs__/createStackNavigator.js.map +1 -0
  23. package/lib/module/__stubs__/window.js +75 -0
  24. package/lib/module/__stubs__/window.js.map +1 -0
  25. package/lib/module/createMemoryHistory.js +19 -17
  26. package/lib/module/createMemoryHistory.js.map +1 -1
  27. package/lib/module/createStaticNavigation.js +54 -0
  28. package/lib/module/createStaticNavigation.js.map +1 -0
  29. package/lib/module/extractPathFromURL.js +6 -5
  30. package/lib/module/extractPathFromURL.js.map +1 -1
  31. package/lib/module/index.js +18 -13
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/module/package.json +1 -0
  34. package/lib/module/theming/DarkTheme.js +6 -3
  35. package/lib/module/theming/DarkTheme.js.map +1 -1
  36. package/lib/module/theming/DefaultTheme.js +6 -3
  37. package/lib/module/theming/DefaultTheme.js.map +1 -1
  38. package/lib/module/theming/fonts.js +61 -0
  39. package/lib/module/theming/fonts.js.map +1 -0
  40. package/lib/module/types.js +2 -0
  41. package/lib/module/types.js.map +1 -1
  42. package/lib/module/useBackButton.js +3 -1
  43. package/lib/module/useBackButton.js.map +1 -1
  44. package/lib/module/useBackButton.native.js +3 -1
  45. package/lib/module/useBackButton.native.js.map +1 -1
  46. package/lib/module/useDocumentTitle.js +6 -4
  47. package/lib/module/useDocumentTitle.js.map +1 -1
  48. package/lib/module/useDocumentTitle.native.js +4 -2
  49. package/lib/module/useDocumentTitle.native.js.map +1 -1
  50. package/lib/module/useLinkBuilder.js +71 -40
  51. package/lib/module/useLinkBuilder.js.map +1 -1
  52. package/lib/module/useLinkProps.js +41 -36
  53. package/lib/module/useLinkProps.js.map +1 -1
  54. package/lib/module/useLinkTo.js +18 -28
  55. package/lib/module/useLinkTo.js.map +1 -1
  56. package/lib/module/useLinking.js +47 -19
  57. package/lib/module/useLinking.js.map +1 -1
  58. package/lib/module/useLinking.native.js +33 -28
  59. package/lib/module/useLinking.native.js.map +1 -1
  60. package/lib/module/useLocale.js +18 -0
  61. package/lib/module/useLocale.js.map +1 -0
  62. package/lib/module/useRoutePath.js +30 -0
  63. package/lib/module/useRoutePath.js.map +1 -0
  64. package/lib/module/useScrollToTop.js +11 -7
  65. package/lib/module/useScrollToTop.js.map +1 -1
  66. package/lib/module/useThenable.js +4 -1
  67. package/lib/module/useThenable.js.map +1 -1
  68. package/lib/typescript/package.json +1 -0
  69. package/lib/typescript/src/Link.d.ts +8 -10
  70. package/lib/typescript/src/Link.d.ts.map +1 -1
  71. package/lib/typescript/src/LinkingContext.d.ts +2 -3
  72. package/lib/typescript/src/LinkingContext.d.ts.map +1 -1
  73. package/lib/typescript/src/LocaleDirContext.d.ts +4 -0
  74. package/lib/typescript/src/LocaleDirContext.d.ts.map +1 -0
  75. package/lib/typescript/src/NavigationContainer.d.ts +36 -13
  76. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  77. package/lib/typescript/src/ServerContainer.d.ts +2 -3
  78. package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
  79. package/lib/typescript/src/ServerContext.d.ts +1 -2
  80. package/lib/typescript/src/ServerContext.d.ts.map +1 -1
  81. package/lib/typescript/src/UnhandledLinkingContext.d.ts +6 -0
  82. package/lib/typescript/src/UnhandledLinkingContext.d.ts.map +1 -0
  83. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +13 -0
  84. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -0
  85. package/lib/typescript/src/{__mocks__ → __stubs__}/window.d.ts +5 -6
  86. package/lib/typescript/src/__stubs__/window.d.ts.map +1 -0
  87. package/lib/typescript/src/createMemoryHistory.d.ts +1 -1
  88. package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -1
  89. package/lib/typescript/src/createStaticNavigation.d.ts +34 -0
  90. package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -0
  91. package/lib/typescript/src/extractPathFromURL.d.ts +1 -1
  92. package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -1
  93. package/lib/typescript/src/index.d.ts +15 -12
  94. package/lib/typescript/src/index.d.ts.map +1 -1
  95. package/lib/typescript/src/theming/DarkTheme.d.ts +1 -2
  96. package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -1
  97. package/lib/typescript/src/theming/DefaultTheme.d.ts +1 -2
  98. package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -1
  99. package/lib/typescript/src/theming/fonts.d.ts +53 -0
  100. package/lib/typescript/src/theming/fonts.d.ts.map +1 -0
  101. package/lib/typescript/src/types.d.ts +35 -3
  102. package/lib/typescript/src/types.d.ts.map +1 -1
  103. package/lib/typescript/src/useBackButton.d.ts +1 -2
  104. package/lib/typescript/src/useBackButton.d.ts.map +1 -1
  105. package/lib/typescript/src/useBackButton.native.d.ts +1 -1
  106. package/lib/typescript/src/useBackButton.native.d.ts.map +1 -1
  107. package/lib/typescript/src/useDocumentTitle.d.ts +1 -1
  108. package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -1
  109. package/lib/typescript/src/useDocumentTitle.native.d.ts +1 -1
  110. package/lib/typescript/src/useDocumentTitle.native.d.ts.map +1 -1
  111. package/lib/typescript/src/useLinkBuilder.d.ts +97 -3
  112. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
  113. package/lib/typescript/src/useLinkProps.d.ts +23 -10
  114. package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
  115. package/lib/typescript/src/useLinkTo.d.ts +6 -8
  116. package/lib/typescript/src/useLinkTo.d.ts.map +1 -1
  117. package/lib/typescript/src/useLinking.d.ts +5 -46
  118. package/lib/typescript/src/useLinking.d.ts.map +1 -1
  119. package/lib/typescript/src/useLinking.native.d.ts +11 -29
  120. package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
  121. package/lib/typescript/src/useLocale.d.ts +7 -0
  122. package/lib/typescript/src/useLocale.d.ts.map +1 -0
  123. package/lib/typescript/src/useRoutePath.d.ts +7 -0
  124. package/lib/typescript/src/useRoutePath.d.ts.map +1 -0
  125. package/lib/typescript/src/useScrollToTop.d.ts +2 -2
  126. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
  127. package/lib/typescript/src/useThenable.d.ts +1 -1
  128. package/lib/typescript/src/useThenable.d.ts.map +1 -1
  129. package/oss-attribution/attribution.txt +50 -0
  130. package/oss-attribution/licenseInfos.json +18 -0
  131. package/package.json +97 -1
  132. package/src/Link.tsx +36 -20
  133. package/src/LinkingContext.tsx +9 -5
  134. package/src/LocaleDirContext.tsx +7 -0
  135. package/src/NavigationContainer.tsx +128 -69
  136. package/src/ServerContainer.tsx +4 -3
  137. package/src/ServerContext.tsx +1 -3
  138. package/src/UnhandledLinkingContext.tsx +18 -0
  139. package/src/__stubs__/createStackNavigator.tsx +46 -0
  140. package/src/{__mocks__ → __stubs__}/window.tsx +8 -8
  141. package/src/createMemoryHistory.tsx +16 -11
  142. package/src/createStaticNavigation.tsx +109 -0
  143. package/src/extractPathFromURL.tsx +3 -3
  144. package/src/index.tsx +15 -12
  145. package/src/theming/DarkTheme.tsx +3 -3
  146. package/src/theming/DefaultTheme.tsx +3 -3
  147. package/src/theming/fonts.tsx +63 -0
  148. package/src/types.tsx +49 -3
  149. package/src/useBackButton.native.tsx +2 -2
  150. package/src/useBackButton.tsx +2 -2
  151. package/src/useDocumentTitle.native.tsx +2 -2
  152. package/src/useDocumentTitle.tsx +2 -2
  153. package/src/useLinkBuilder.tsx +100 -55
  154. package/src/useLinkProps.tsx +80 -50
  155. package/src/useLinkTo.tsx +13 -53
  156. package/src/useLinking.native.tsx +33 -31
  157. package/src/useLinking.tsx +70 -23
  158. package/src/useLocale.tsx +18 -0
  159. package/src/useRoutePath.tsx +34 -0
  160. package/src/useScrollToTop.tsx +16 -12
  161. package/src/useThenable.tsx +2 -1
  162. package/SystemBundles/41869b563992545ca95a9a2f729e958cbdcada7391919e8e02112d791754072a.bundle +0 -14508
  163. package/SystemBundles/41869b563992545ca95a9a2f729e958cbdcada7391919e8e02112d791754072a.map +0 -5157
  164. package/SystemModules/amzn__react-navigation__native-7.modules.txt +0 -76
  165. package/SystemModules/amzn__react-navigation__native-7.private.modules.txt +0 -100
  166. package/THIRD_PARTY_NOTICES.txt +0 -24
  167. package/lib/commonjs/Link.js +0 -50
  168. package/lib/commonjs/Link.js.map +0 -1
  169. package/lib/commonjs/LinkingContext.js +0 -15
  170. package/lib/commonjs/LinkingContext.js.map +0 -1
  171. package/lib/commonjs/NavigationContainer.js +0 -109
  172. package/lib/commonjs/NavigationContainer.js.map +0 -1
  173. package/lib/commonjs/ServerContainer.js +0 -54
  174. package/lib/commonjs/ServerContainer.js.map +0 -1
  175. package/lib/commonjs/ServerContext.js +0 -12
  176. package/lib/commonjs/ServerContext.js.map +0 -1
  177. package/lib/commonjs/createMemoryHistory.js +0 -220
  178. package/lib/commonjs/createMemoryHistory.js.map +0 -1
  179. package/lib/commonjs/extractPathFromURL.js +0 -25
  180. package/lib/commonjs/extractPathFromURL.js.map +0 -1
  181. package/lib/commonjs/index.js +0 -129
  182. package/lib/commonjs/index.js.map +0 -1
  183. package/lib/commonjs/theming/DarkTheme.js +0 -19
  184. package/lib/commonjs/theming/DarkTheme.js.map +0 -1
  185. package/lib/commonjs/theming/DefaultTheme.js +0 -19
  186. package/lib/commonjs/theming/DefaultTheme.js.map +0 -1
  187. package/lib/commonjs/theming/ThemeContext.js +0 -15
  188. package/lib/commonjs/theming/ThemeContext.js.map +0 -1
  189. package/lib/commonjs/theming/ThemeProvider.js +0 -20
  190. package/lib/commonjs/theming/ThemeProvider.js.map +0 -1
  191. package/lib/commonjs/theming/useTheme.js +0 -16
  192. package/lib/commonjs/theming/useTheme.js.map +0 -1
  193. package/lib/commonjs/types.js +0 -6
  194. package/lib/commonjs/types.js.map +0 -1
  195. package/lib/commonjs/useBackButton.js +0 -11
  196. package/lib/commonjs/useBackButton.js.map +0 -1
  197. package/lib/commonjs/useBackButton.native.js +0 -27
  198. package/lib/commonjs/useBackButton.native.js.map +0 -1
  199. package/lib/commonjs/useDocumentTitle.js +0 -32
  200. package/lib/commonjs/useDocumentTitle.js.map +0 -1
  201. package/lib/commonjs/useDocumentTitle.native.js +0 -10
  202. package/lib/commonjs/useDocumentTitle.native.js.map +0 -1
  203. package/lib/commonjs/useLinkBuilder.js +0 -63
  204. package/lib/commonjs/useLinkBuilder.js.map +0 -1
  205. package/lib/commonjs/useLinkProps.js +0 -97
  206. package/lib/commonjs/useLinkProps.js.map +0 -1
  207. package/lib/commonjs/useLinkTo.js +0 -45
  208. package/lib/commonjs/useLinkTo.js.map +0 -1
  209. package/lib/commonjs/useLinking.js +0 -303
  210. package/lib/commonjs/useLinking.js.map +0 -1
  211. package/lib/commonjs/useLinking.native.js +0 -152
  212. package/lib/commonjs/useLinking.native.js.map +0 -1
  213. package/lib/commonjs/useScrollToTop.js +0 -95
  214. package/lib/commonjs/useScrollToTop.js.map +0 -1
  215. package/lib/commonjs/useThenable.js +0 -41
  216. package/lib/commonjs/useThenable.js.map +0 -1
  217. package/lib/module/theming/ThemeContext.js +0 -6
  218. package/lib/module/theming/ThemeContext.js.map +0 -1
  219. package/lib/module/theming/ThemeProvider.js +0 -11
  220. package/lib/module/theming/ThemeProvider.js.map +0 -1
  221. package/lib/module/theming/useTheme.js +0 -7
  222. package/lib/module/theming/useTheme.js.map +0 -1
  223. package/lib/typescript/src/__mocks__/window.d.ts.map +0 -1
  224. package/lib/typescript/src/theming/ThemeContext.d.ts +0 -5
  225. package/lib/typescript/src/theming/ThemeContext.d.ts.map +0 -1
  226. package/lib/typescript/src/theming/ThemeProvider.d.ts +0 -9
  227. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +0 -1
  228. package/lib/typescript/src/theming/useTheme.d.ts +0 -2
  229. package/lib/typescript/src/theming/useTheme.d.ts.map +0 -1
  230. package/src/theming/ThemeContext.tsx +0 -10
  231. package/src/theming/ThemeProvider.tsx +0 -15
  232. package/src/theming/useTheme.tsx +0 -9
@@ -1,54 +1,85 @@
1
- import { getPathFromState, NavigationHelpersContext } from '@amazon-devices/react-navigation__core';
2
- import * as React from 'react';
3
- import LinkingContext from './LinkingContext';
4
- const getRootStateForNavigate = (navigation, state) => {
5
- const parent = navigation.getParent();
6
- if (parent) {
7
- const parentState = parent.getState();
8
- return getRootStateForNavigate(parent, {
9
- index: 0,
10
- routes: [{
11
- ...parentState.routes[parentState.index],
12
- state: state
13
- }]
14
- });
15
- }
16
- return state;
17
- };
1
+ "use strict";
18
2
 
3
+ import { CommonActions, findFocusedRoute, getActionFromState, getPathFromState, getStateFromPath, NavigationHelpersContext, NavigationRouteContext, useStateForPath } from '@amazon-devices/react-navigation__core';
4
+ import * as React from 'react';
5
+ import { LinkingContext } from "./LinkingContext.js";
19
6
  /**
20
- * Build destination link for a navigate action.
21
- * Useful for showing anchor tags on the web for buttons that perform navigation.
7
+ * Helpers to build href or action based on the linking options.
8
+ *
9
+ * @returns `buildHref` to build an `href` for screen and `buildAction` to build an action from an `href`.
22
10
  */
23
- export default function useLinkBuilder() {
11
+ export function useLinkBuilder() {
24
12
  const navigation = React.useContext(NavigationHelpersContext);
25
- const linking = React.useContext(LinkingContext);
26
- const buildLink = React.useCallback((name, params) => {
27
- const {
28
- options
29
- } = linking;
30
- if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {
13
+ const route = React.useContext(NavigationRouteContext);
14
+ const {
15
+ options
16
+ } = React.useContext(LinkingContext);
17
+ const focusedRouteState = useStateForPath();
18
+ const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;
19
+ const getStateFromPathHelper = options?.getStateFromPath ?? getStateFromPath;
20
+ const getActionFromStateHelper = options?.getActionFromState ?? getActionFromState;
21
+ const buildHref = React.useCallback((name, params) => {
22
+ if (options?.enabled === false) {
31
23
  return undefined;
32
24
  }
33
- const state = navigation ? getRootStateForNavigate(navigation, {
34
- index: 0,
35
- routes: [{
36
- name,
37
- params
38
- }]
39
- }) :
40
- // If we couldn't find a navigation object in context, we're at root
41
- // So we'll construct a basic state object to use
42
- {
43
- index: 0,
25
+
26
+ // Check that we're inside:
27
+ // - navigator's context
28
+ // - route context of the navigator (could be a screen, tab, etc.)
29
+ // - route matches the state for path (from the screen's context)
30
+ // This ensures that we're inside a screen
31
+ const isScreen = navigation && route?.key && focusedRouteState ? route.key === findFocusedRoute(focusedRouteState)?.key && navigation.getState().routes.some(r => r.key === route.key) : false;
32
+ const stateForRoute = {
44
33
  routes: [{
45
34
  name,
46
35
  params
47
36
  }]
48
37
  };
49
- const path = options !== null && options !== void 0 && options.getPathFromState ? options.getPathFromState(state, options === null || options === void 0 ? void 0 : options.config) : getPathFromState(state, options === null || options === void 0 ? void 0 : options.config);
38
+ const constructState = state => {
39
+ if (state) {
40
+ const route = state.routes[0];
41
+
42
+ // If we're inside a screen and at the innermost route
43
+ // We need to replace the state with the provided one
44
+ // This assumes that we're navigating to a sibling route
45
+ if (isScreen && !route.state) {
46
+ return stateForRoute;
47
+ }
48
+
49
+ // Otherwise, dive into the nested state of the route
50
+ return {
51
+ routes: [{
52
+ ...route,
53
+ state: constructState(route.state)
54
+ }]
55
+ };
56
+ }
57
+
58
+ // Once there is no more nested state, we're at the innermost route
59
+ // We can add a state based on provided parameters
60
+ // This assumes that we're navigating to a child of this route
61
+ // In this case, the helper is used in a navigator for its routes
62
+ return stateForRoute;
63
+ };
64
+ const state = constructState(focusedRouteState);
65
+ const path = getPathFromStateHelper(state, options?.config);
50
66
  return path;
51
- }, [linking, navigation]);
52
- return buildLink;
67
+ }, [options?.enabled, options?.config, route?.key, navigation, focusedRouteState, getPathFromStateHelper]);
68
+ const buildAction = React.useCallback(href => {
69
+ if (!href.startsWith('/')) {
70
+ throw new Error(`The href must start with '/' (${href}).`);
71
+ }
72
+ const state = getStateFromPathHelper(href, options?.config);
73
+ if (state) {
74
+ const action = getActionFromStateHelper(state, options?.config);
75
+ return action ?? CommonActions.reset(state);
76
+ } else {
77
+ throw new Error('Failed to parse the href to a navigation state.');
78
+ }
79
+ }, [options?.config, getStateFromPathHelper, getActionFromStateHelper]);
80
+ return {
81
+ buildHref,
82
+ buildAction
83
+ };
53
84
  }
54
85
  //# sourceMappingURL=useLinkBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getPathFromState","NavigationHelpersContext","React","LinkingContext","getRootStateForNavigate","navigation","state","parent","getParent","parentState","getState","index","routes","useLinkBuilder","useContext","linking","buildLink","useCallback","name","params","options","enabled","undefined","path","config"],"sourceRoot":"../../src","sources":["useLinkBuilder.tsx"],"mappings":"AAAA,SACEA,gBAAgB,EAEhBC,wBAAwB,QAGnB,8BAA8B;AACrC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAOC,cAAc,MAAM,kBAAkB;AAW7C,MAAMC,uBAAuB,GAAGA,CAC9BC,UAA4B,EAC5BC,KAAmB,KACF;EACjB,MAAMC,MAAM,GAAGF,UAAU,CAACG,SAAS,CAAC,CAAC;EAErC,IAAID,MAAM,EAAE;IACV,MAAME,WAAW,GAAGF,MAAM,CAACG,QAAQ,CAAC,CAAC;IAErC,OAAON,uBAAuB,CAACG,MAAM,EAAE;MACrCI,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CACN;QACE,GAAGH,WAAW,CAACG,MAAM,CAACH,WAAW,CAACE,KAAK,CAAC;QACxCL,KAAK,EAAEA;MACT,CAAC;IAEL,CAAC,CAAC;EACJ;EAEA,OAAOA,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,SAASO,cAAcA,CAAA,EAAG;EACvC,MAAMR,UAAU,GAAGH,KAAK,CAACY,UAAU,CAACb,wBAAwB,CAAC;EAC7D,MAAMc,OAAO,GAAGb,KAAK,CAACY,UAAU,CAACX,cAAc,CAAC;EAEhD,MAAMa,SAAS,GAAGd,KAAK,CAACe,WAAW,CACjC,CAACC,IAAY,EAAEC,MAAe,KAAK;IACjC,MAAM;MAAEC;IAAQ,CAAC,GAAGL,OAAO;IAE3B,IAAI,CAAAK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,OAAO,MAAK,KAAK,EAAE;MAC9B,OAAOC,SAAS;IAClB;IAEA,MAAMhB,KAAK,GAAGD,UAAU,GACpBD,uBAAuB,CAACC,UAAU,EAAE;MAClCM,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;QAAEM,IAAI;QAAEC;MAAO,CAAC;IAC3B,CAAC,CAAC;IACF;IACA;IACA;MACER,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;QAAEM,IAAI;QAAEC;MAAO,CAAC;IAC3B,CAAC;IAEL,MAAMI,IAAI,GAAGH,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEpB,gBAAgB,GAClCoB,OAAO,CAACpB,gBAAgB,CAACM,KAAK,EAAEc,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,MAAM,CAAC,GAChDxB,gBAAgB,CAACM,KAAK,EAAEc,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,MAAM,CAAC;IAE5C,OAAOD,IAAI;EACb,CAAC,EACD,CAACR,OAAO,EAAEV,UAAU,CACtB,CAAC;EAED,OAAOW,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","findFocusedRoute","getActionFromState","getPathFromState","getStateFromPath","NavigationHelpersContext","NavigationRouteContext","useStateForPath","React","LinkingContext","useLinkBuilder","navigation","useContext","route","options","focusedRouteState","getPathFromStateHelper","getStateFromPathHelper","getActionFromStateHelper","buildHref","useCallback","name","params","enabled","undefined","isScreen","key","getState","routes","some","r","stateForRoute","constructState","state","path","config","buildAction","href","startsWith","Error","action","reset"],"sourceRoot":"../../src","sources":["useLinkBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,19 @@
1
+ "use strict";
2
+
1
3
  import { getPathFromState, NavigationContainerRefContext, NavigationHelpersContext } from '@amazon-devices/react-navigation__core';
2
4
  import * as React from 'react';
3
5
  import { Platform } from 'react-native';
4
- import LinkingContext from './LinkingContext';
5
- import useLinkTo from './useLinkTo';
6
+ import { LinkingContext } from "./LinkingContext.js";
6
7
  const getStateFromParams = params => {
7
- if (params !== null && params !== void 0 && params.state) {
8
+ if (params?.state) {
8
9
  return params.state;
9
10
  }
10
- if (params !== null && params !== void 0 && params.screen) {
11
+ if (params?.screen) {
11
12
  return {
12
13
  routes: [{
13
14
  name: params.screen,
14
15
  params: params.params,
15
- // @ts-expect-error
16
+ // @ts-expect-error this is fine 🔥
16
17
  state: params.screen ? getStateFromParams(params.params) : undefined
17
18
  }]
18
19
  };
@@ -23,11 +24,15 @@ const getStateFromParams = params => {
23
24
  /**
24
25
  * Hook to get props for an anchor tag so it can work with in page navigation.
25
26
  *
26
- * @param props.to Absolute path to screen (e.g. `/feeds/hot`).
27
+ * @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
28
+ * @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
29
+ * @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
27
30
  * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.
28
31
  */
29
- export default function useLinkProps({
30
- to,
32
+ export function useLinkProps({
33
+ screen,
34
+ params,
35
+ href,
31
36
  action
32
37
  }) {
33
38
  const root = React.useContext(NavigationContainerRefContext);
@@ -35,25 +40,24 @@ export default function useLinkProps({
35
40
  const {
36
41
  options
37
42
  } = React.useContext(LinkingContext);
38
- const linkTo = useLinkTo();
39
43
  const onPress = e => {
40
- var _e$currentTarget;
41
44
  let shouldHandle = false;
42
45
  if (Platform.OS !== 'web' || !e) {
43
- shouldHandle = e ? !e.defaultPrevented : true;
44
- } else if (!e.defaultPrevented &&
45
- // onPress prevented default
46
- // @ts-expect-error: these properties exist on web, but not in React Native
47
- !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (
48
- // ignore clicks with modifier keys
49
- // @ts-expect-error: these properties exist on web, but not in React Native
50
- e.button == null || e.button === 0) &&
51
- // ignore everything but left clicks
52
- // @ts-expect-error: these properties exist on web, but not in React Native
53
- [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
54
- ) {
55
- e.preventDefault();
46
+ e?.preventDefault?.();
56
47
  shouldHandle = true;
48
+ } else {
49
+ // ignore clicks with modifier keys
50
+ const hasModifierKey = 'metaKey' in e && e.metaKey || 'altKey' in e && e.altKey || 'ctrlKey' in e && e.ctrlKey || 'shiftKey' in e && e.shiftKey;
51
+
52
+ // only handle left clicks
53
+ const isLeftClick = 'button' in e ? e.button == null || e.button === 0 : true;
54
+
55
+ // let browser handle "target=_blank" etc.
56
+ const isSelfTarget = e.currentTarget && 'target' in e.currentTarget ? [undefined, null, '', 'self'].includes(e.currentTarget.target) : true;
57
+ if (!hasModifierKey && isLeftClick && isSelfTarget) {
58
+ e.preventDefault?.();
59
+ shouldHandle = true;
60
+ }
57
61
  }
58
62
  if (shouldHandle) {
59
63
  if (action) {
@@ -65,23 +69,24 @@ export default function useLinkProps({
65
69
  throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
66
70
  }
67
71
  } else {
68
- linkTo(to);
72
+ // @ts-expect-error This is already type-checked by the prop types
73
+ navigation?.navigate(screen, params);
69
74
  }
70
75
  }
71
76
  };
72
- const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? getPathFromState;
73
- const href = typeof to === 'string' ? to : getPathFromStateHelper({
74
- routes: [{
75
- name: to.screen,
76
- // @ts-expect-error
77
- params: to.params,
78
- // @ts-expect-error
79
- state: getStateFromParams(to.params)
80
- }]
81
- }, options === null || options === void 0 ? void 0 : options.config);
77
+ const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;
82
78
  return {
83
- href,
84
- accessibilityRole: 'link',
79
+ href: href ?? (Platform.OS === 'web' && screen != null ? getPathFromStateHelper({
80
+ routes: [{
81
+ // @ts-expect-error this is fine 🔥
82
+ name: screen,
83
+ // @ts-expect-error this is fine 🔥
84
+ params: params,
85
+ // @ts-expect-error this is fine 🔥
86
+ state: getStateFromParams(params)
87
+ }]
88
+ }, options?.config) : undefined),
89
+ role: 'link',
85
90
  onPress
86
91
  };
87
92
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","useLinkTo","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","useContext","navigation","options","linkTo","onPress","e","_e$currentTarget","shouldHandle","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","href","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","href","action","root","useContext","navigation","options","onPress","e","shouldHandle","OS","preventDefault","hasModifierKey","metaKey","altKey","ctrlKey","shiftKey","isLeftClick","button","isSelfTarget","currentTarget","includes","target","dispatch","Error","navigate","getPathFromStateHelper","config","role"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,36 +1,26 @@
1
- import { getActionFromState, getStateFromPath, NavigationContainerRefContext } from '@amazon-devices/react-navigation__core';
1
+ "use strict";
2
+
3
+ import { NavigationContainerRefContext } from '@amazon-devices/react-navigation__core';
2
4
  import * as React from 'react';
3
- import LinkingContext from './LinkingContext';
4
- export default function useLinkTo() {
5
+ import { useLinkBuilder } from "./useLinkBuilder.js";
6
+
7
+ /**
8
+ * Helper to navigate to a screen using a href based on the linking options.
9
+ *
10
+ * @returns function that receives the href to navigate to.
11
+ */
12
+ export function useLinkTo() {
5
13
  const navigation = React.useContext(NavigationContainerRefContext);
6
- const linking = React.useContext(LinkingContext);
7
- const linkTo = React.useCallback(to => {
14
+ const {
15
+ buildAction
16
+ } = useLinkBuilder();
17
+ const linkTo = React.useCallback(href => {
8
18
  if (navigation === undefined) {
9
19
  throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
10
20
  }
11
- if (typeof to !== 'string') {
12
- // @ts-expect-error: This is fine
13
- navigation.navigate(to.screen, to.params);
14
- return;
15
- }
16
- if (!to.startsWith('/')) {
17
- throw new Error(`The path must start with '/' (${to}).`);
18
- }
19
- const {
20
- options
21
- } = linking;
22
- const state = options !== null && options !== void 0 && options.getStateFromPath ? options.getStateFromPath(to, options.config) : getStateFromPath(to, options === null || options === void 0 ? void 0 : options.config);
23
- if (state) {
24
- const action = getActionFromState(state, options === null || options === void 0 ? void 0 : options.config);
25
- if (action !== undefined) {
26
- navigation.dispatch(action);
27
- } else {
28
- navigation.reset(state);
29
- }
30
- } else {
31
- throw new Error('Failed to parse the path to a navigation state.');
32
- }
33
- }, [linking, navigation]);
21
+ const action = buildAction(href);
22
+ navigation.dispatch(action);
23
+ }, [buildAction, navigation]);
34
24
  return linkTo;
35
25
  }
36
26
  //# sourceMappingURL=useLinkTo.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getActionFromState","getStateFromPath","NavigationContainerRefContext","React","LinkingContext","useLinkTo","navigation","useContext","linking","linkTo","useCallback","to","undefined","Error","navigate","screen","params","startsWith","options","state","config","action","dispatch","reset"],"sourceRoot":"../../src","sources":["useLinkTo.tsx"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,gBAAgB,EAChBC,6BAA6B,QACxB,8BAA8B;AACrC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAOC,cAAc,MAAM,kBAAkB;AAiB7C,eAAe,SAASC,SAASA,CAAA,EAE7B;EACF,MAAMC,UAAU,GAAGH,KAAK,CAACI,UAAU,CAACL,6BAA6B,CAAC;EAClE,MAAMM,OAAO,GAAGL,KAAK,CAACI,UAAU,CAACH,cAAc,CAAC;EAEhD,MAAMK,MAAM,GAAGN,KAAK,CAACO,WAAW,CAC7BC,EAAiB,IAAK;IACrB,IAAIL,UAAU,KAAKM,SAAS,EAAE;MAC5B,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;IACH;IAEA,IAAI,OAAOF,EAAE,KAAK,QAAQ,EAAE;MAC1B;MACAL,UAAU,CAACQ,QAAQ,CAACH,EAAE,CAACI,MAAM,EAAEJ,EAAE,CAACK,MAAM,CAAC;MACzC;IACF;IAEA,IAAI,CAACL,EAAE,CAACM,UAAU,CAAC,GAAG,CAAC,EAAE;MACvB,MAAM,IAAIJ,KAAK,CAAC,iCAAiCF,EAAE,IAAI,CAAC;IAC1D;IAEA,MAAM;MAAEO;IAAQ,CAAC,GAAGV,OAAO;IAE3B,MAAMW,KAAK,GAAGD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEjB,gBAAgB,GACnCiB,OAAO,CAACjB,gBAAgB,CAACU,EAAE,EAAEO,OAAO,CAACE,MAAM,CAAC,GAC5CnB,gBAAgB,CAACU,EAAE,EAAEO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,MAAM,CAAC;IAEzC,IAAID,KAAK,EAAE;MACT,MAAME,MAAM,GAAGrB,kBAAkB,CAACmB,KAAK,EAAED,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,MAAM,CAAC;MAEzD,IAAIC,MAAM,KAAKT,SAAS,EAAE;QACxBN,UAAU,CAACgB,QAAQ,CAACD,MAAM,CAAC;MAC7B,CAAC,MAAM;QACLf,UAAU,CAACiB,KAAK,CAACJ,KAAK,CAAC;MACzB;IACF,CAAC,MAAM;MACL,MAAM,IAAIN,KAAK,CAAC,iDAAiD,CAAC;IACpE;EACF,CAAC,EACD,CAACL,OAAO,EAAEF,UAAU,CACtB,CAAC;EAED,OAAOG,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["NavigationContainerRefContext","React","useLinkBuilder","useLinkTo","navigation","useContext","buildAction","linkTo","useCallback","href","undefined","Error","action","dispatch"],"sourceRoot":"../../src","sources":["useLinkTo.tsx"],"mappings":";;AAAA,SAASA,6BAA6B,QAAQ,8BAA8B;AAC5E,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,cAAc,QAAQ,qBAAkB;;AAEjD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,MAAMC,UAAU,GAAGH,KAAK,CAACI,UAAU,CAACL,6BAA6B,CAAC;EAClE,MAAM;IAAEM;EAAY,CAAC,GAAGJ,cAAc,CAAC,CAAC;EAExC,MAAMK,MAAM,GAAGN,KAAK,CAACO,WAAW,CAC7BC,IAAY,IAAK;IAChB,IAAIL,UAAU,KAAKM,SAAS,EAAE;MAC5B,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;IACH;IAEA,MAAMC,MAAM,GAAGN,WAAW,CAACG,IAAI,CAAC;IAEhCL,UAAU,CAACS,QAAQ,CAACD,MAAM,CAAC;EAC7B,CAAC,EACD,CAACN,WAAW,EAAEF,UAAU,CAC1B,CAAC;EAED,OAAOG,MAAM;AACf","ignoreList":[]}
@@ -1,8 +1,10 @@
1
- import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault } from '@amazon-devices/react-navigation__core';
1
+ "use strict";
2
+
3
+ import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@amazon-devices/react-navigation__core';
2
4
  import isEqual from 'fast-deep-equal';
3
5
  import * as React from 'react';
4
- import createMemoryHistory from './createMemoryHistory';
5
- import ServerContext from './ServerContext';
6
+ import { createMemoryHistory } from "./createMemoryHistory.js";
7
+ import { ServerContext } from "./ServerContext.js";
6
8
  /**
7
9
  * Find the matching navigation state that changed between 2 navigation states
8
10
  * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state
@@ -37,19 +39,20 @@ const findMatchingState = (a, b) => {
37
39
  export const series = cb => {
38
40
  let queue = Promise.resolve();
39
41
  const callback = () => {
42
+ // eslint-disable-next-line promise/no-callback-in-promise
40
43
  queue = queue.then(cb);
41
44
  };
42
45
  return callback;
43
46
  };
44
- let linkingHandlers = [];
45
- export default function useLinking(ref, {
46
- independent,
47
+ const linkingHandlers = [];
48
+ export function useLinking(ref, {
47
49
  enabled = true,
48
50
  config,
49
51
  getStateFromPath = getStateFromPathDefault,
50
52
  getPathFromState = getPathFromStateDefault,
51
53
  getActionFromState = getActionFromStateDefault
52
- }) {
54
+ }, onUnhandledLinking) {
55
+ const independent = useNavigationIndependentTree();
53
56
  React.useEffect(() => {
54
57
  if (process.env.NODE_ENV === 'production') {
55
58
  return undefined;
@@ -88,15 +91,25 @@ export default function useLinking(ref, {
88
91
  getPathFromStateRef.current = getPathFromState;
89
92
  getActionFromStateRef.current = getActionFromState;
90
93
  });
94
+ const validateRoutesNotExistInRootState = React.useCallback(state => {
95
+ const navigation = ref.current;
96
+ const rootState = navigation?.getRootState();
97
+ // Make sure that the routes in the state exist in the root navigator
98
+ // Otherwise there's an error in the linking configuration
99
+ return state?.routes.some(r => !rootState?.routeNames.includes(r.name));
100
+ }, [ref]);
91
101
  const server = React.useContext(ServerContext);
92
102
  const getInitialState = React.useCallback(() => {
93
103
  let value;
94
104
  if (enabledRef.current) {
95
- const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);
105
+ const location = server?.location ?? (typeof window !== 'undefined' ? window.location : undefined);
96
106
  const path = location ? location.pathname + location.search : undefined;
97
107
  if (path) {
98
108
  value = getStateFromPathRef.current(path, configRef.current);
99
109
  }
110
+
111
+ // If the link were handled, it gets cleared in NavigationContainer
112
+ onUnhandledLinking(path);
100
113
  }
101
114
  const thenable = {
102
115
  then(onfulfilled) {
@@ -119,6 +132,9 @@ export default function useLinking(ref, {
119
132
  if (!navigation || !enabled) {
120
133
  return;
121
134
  }
135
+ const {
136
+ location
137
+ } = window;
122
138
  const path = location.pathname + location.search;
123
139
  const index = history.index;
124
140
  const previousIndex = previousIndexRef.current ?? 0;
@@ -129,7 +145,7 @@ export default function useLinking(ref, {
129
145
  // If it does we'll reset to that state object
130
146
  // Otherwise, we'll handle it like a regular deep link
131
147
  const record = history.get(index);
132
- if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {
148
+ if (record?.path === path && record?.state) {
133
149
  navigation.resetRoot(record.state);
134
150
  return;
135
151
  }
@@ -138,11 +154,11 @@ export default function useLinking(ref, {
138
154
  // We should only dispatch an action when going forward
139
155
  // Otherwise the action will likely add items to history, which would mess things up
140
156
  if (state) {
157
+ // If the link were handled, it gets cleared in NavigationContainer
158
+ onUnhandledLinking(path);
141
159
  // Make sure that the routes in the state exist in the root navigator
142
160
  // Otherwise there's an error in the linking configuration
143
- const rootState = navigation.getRootState();
144
- if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
145
- console.warn("The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.");
161
+ if (validateRoutesNotExistInRootState(state)) {
146
162
  return;
147
163
  }
148
164
  if (index > previousIndex) {
@@ -166,25 +182,35 @@ export default function useLinking(ref, {
166
182
  navigation.resetRoot(state);
167
183
  }
168
184
  });
169
- }, [enabled, history, ref]);
185
+ }, [enabled, history, onUnhandledLinking, ref, validateRoutesNotExistInRootState]);
170
186
  React.useEffect(() => {
171
- var _ref$current;
172
187
  if (!enabled) {
173
188
  return;
174
189
  }
175
190
  const getPathForRoute = (route, state) => {
191
+ let path;
192
+
176
193
  // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
177
194
  // This makes sure that we preserve the original URL for wildcard routes
178
- if (route !== null && route !== void 0 && route.path) {
195
+ if (route?.path) {
179
196
  const stateForPath = getStateFromPathRef.current(route.path, configRef.current);
180
197
  if (stateForPath) {
181
198
  const focusedRoute = findFocusedRoute(stateForPath);
182
199
  if (focusedRoute && focusedRoute.name === route.name && isEqual(focusedRoute.params, route.params)) {
183
- return route.path;
200
+ path = route.path;
184
201
  }
185
202
  }
186
203
  }
187
- return getPathFromStateRef.current(state, configRef.current);
204
+ if (path == null) {
205
+ path = getPathFromStateRef.current(state, configRef.current);
206
+ }
207
+ const previousRoute = previousStateRef.current ? findFocusedRoute(previousStateRef.current) : undefined;
208
+
209
+ // Preserve the hash if the route didn't change
210
+ if (previousRoute && route && 'key' in previousRoute && 'key' in route && previousRoute.key === route.key) {
211
+ path = path + location.hash;
212
+ }
213
+ return path;
188
214
  };
189
215
  if (ref.current) {
190
216
  // We need to record the current metadata on the first render if they aren't set
@@ -245,7 +271,9 @@ export default function useLinking(ref, {
245
271
  });
246
272
  const currentIndex = history.index;
247
273
  try {
248
- if (nextIndex !== -1 && nextIndex < currentIndex) {
274
+ if (nextIndex !== -1 && nextIndex < currentIndex &&
275
+ // We should only go back if the entry exists and it's less than current index
276
+ history.get(nextIndex)) {
249
277
  // An existing entry for this path exists and it's less than current index, go back to that
250
278
  await history.go(nextIndex - currentIndex);
251
279
  } else {
@@ -283,7 +311,7 @@ export default function useLinking(ref, {
283
311
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
284
312
  // This could happen since `history.go(n)` is asynchronous
285
313
  // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up
286
- return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));
314
+ return ref.current?.addListener('state', series(onStateChange));
287
315
  }, [enabled, history, ref]);
288
316
  return {
289
317
  getInitialState
@@ -1 +1 @@
1
- {"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","isEqual","React","createMemoryHistory","ServerContext","findMatchingState","a","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","independent","enabled","config","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","server","useContext","getInitialState","useCallback","value","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","navigation","previousIndex","record","get","resetRoot","rootState","getRootState","some","r","routeNames","includes","name","warn","action","dispatch","e","message","_ref$current","getPathForRoute","route","stateForPath","focusedRoute","params","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","findMatchingState","a","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","enabled","config","onUnhandledLinking","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","record","get","resetRoot","action","dispatch","e","warn","message","getPathForRoute","route","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}