@react-navigation/native 7.0.0-alpha.0 → 7.0.0-alpha.10

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 (238) hide show
  1. package/lib/commonjs/Link.js +16 -9
  2. package/lib/commonjs/Link.js.map +1 -1
  3. package/lib/commonjs/LinkingContext.js +8 -7
  4. package/lib/commonjs/LinkingContext.js.map +1 -1
  5. package/lib/commonjs/LocaleDirContext.js +12 -0
  6. package/lib/commonjs/LocaleDirContext.js.map +1 -0
  7. package/lib/commonjs/NavigationContainer.js +68 -32
  8. package/lib/commonjs/NavigationContainer.js.map +1 -1
  9. package/lib/commonjs/ServerContainer.js +6 -8
  10. package/lib/commonjs/ServerContainer.js.map +1 -1
  11. package/lib/commonjs/ServerContext.js +4 -6
  12. package/lib/commonjs/ServerContext.js.map +1 -1
  13. package/lib/commonjs/UnhandledLinkingContext.js +20 -0
  14. package/lib/commonjs/UnhandledLinkingContext.js.map +1 -0
  15. package/lib/commonjs/__stubs__/createStackNavigator.js +19 -0
  16. package/lib/commonjs/__stubs__/createStackNavigator.js.map +1 -0
  17. package/lib/commonjs/__stubs__/window.js +79 -0
  18. package/lib/commonjs/__stubs__/window.js.map +1 -0
  19. package/lib/commonjs/createMemoryHistory.js +5 -8
  20. package/lib/commonjs/createMemoryHistory.js.map +1 -1
  21. package/lib/commonjs/createStaticNavigation.js +8 -8
  22. package/lib/commonjs/createStaticNavigation.js.map +1 -1
  23. package/lib/commonjs/extractPathFromURL.js +4 -4
  24. package/lib/commonjs/extractPathFromURL.js.map +1 -1
  25. package/lib/commonjs/index.js +33 -34
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/theming/DarkTheme.js +5 -5
  28. package/lib/commonjs/theming/DarkTheme.js.map +1 -1
  29. package/lib/commonjs/theming/DefaultTheme.js +5 -5
  30. package/lib/commonjs/theming/DefaultTheme.js.map +1 -1
  31. package/lib/commonjs/theming/fonts.js +65 -0
  32. package/lib/commonjs/theming/fonts.js.map +1 -0
  33. package/lib/commonjs/types.js.map +1 -1
  34. package/lib/commonjs/useBackButton.js +4 -20
  35. package/lib/commonjs/useBackButton.js.map +1 -1
  36. package/lib/commonjs/useBackButton.native.js +27 -0
  37. package/lib/commonjs/useBackButton.native.js.map +1 -0
  38. package/lib/commonjs/useDocumentTitle.js +6 -6
  39. package/lib/commonjs/useDocumentTitle.js.map +1 -1
  40. package/lib/commonjs/useDocumentTitle.native.js +1 -1
  41. package/lib/commonjs/useDocumentTitle.native.js.map +1 -1
  42. package/lib/commonjs/useLinkBuilder.js +80 -0
  43. package/lib/commonjs/useLinkBuilder.js.map +1 -0
  44. package/lib/commonjs/useLinkProps.js +23 -27
  45. package/lib/commonjs/useLinkProps.js.map +1 -1
  46. package/lib/commonjs/useLinkTo.js +30 -0
  47. package/lib/commonjs/useLinkTo.js.map +1 -0
  48. package/lib/commonjs/useLinking.js +39 -40
  49. package/lib/commonjs/useLinking.js.map +1 -1
  50. package/lib/commonjs/useLinking.native.js +33 -27
  51. package/lib/commonjs/useLinking.native.js.map +1 -1
  52. package/lib/commonjs/useLocale.js +23 -0
  53. package/lib/commonjs/useLocale.js.map +1 -0
  54. package/lib/commonjs/useScrollToTop.js +9 -7
  55. package/lib/commonjs/useScrollToTop.js.map +1 -1
  56. package/lib/commonjs/useThenable.js +4 -3
  57. package/lib/commonjs/useThenable.js.map +1 -1
  58. package/lib/commonjs/useUnhandledLinking.js +75 -0
  59. package/lib/commonjs/useUnhandledLinking.js.map +1 -0
  60. package/lib/module/Link.js +13 -5
  61. package/lib/module/Link.js.map +1 -1
  62. package/lib/module/LinkingContext.js +5 -3
  63. package/lib/module/LinkingContext.js.map +1 -1
  64. package/lib/module/LocaleDirContext.js +4 -0
  65. package/lib/module/LocaleDirContext.js.map +1 -0
  66. package/lib/module/NavigationContainer.js +60 -23
  67. package/lib/module/NavigationContainer.js.map +1 -1
  68. package/lib/module/ServerContainer.js +2 -2
  69. package/lib/module/ServerContainer.js.map +1 -1
  70. package/lib/module/ServerContext.js +1 -2
  71. package/lib/module/ServerContext.js.map +1 -1
  72. package/lib/module/UnhandledLinkingContext.js +12 -0
  73. package/lib/module/UnhandledLinkingContext.js.map +1 -0
  74. package/lib/module/__stubs__/createStackNavigator.js +11 -0
  75. package/lib/module/__stubs__/createStackNavigator.js.map +1 -0
  76. package/lib/module/__stubs__/window.js +73 -0
  77. package/lib/module/__stubs__/window.js.map +1 -0
  78. package/lib/module/createMemoryHistory.js +5 -8
  79. package/lib/module/createMemoryHistory.js.map +1 -1
  80. package/lib/module/createStaticNavigation.js +5 -4
  81. package/lib/module/createStaticNavigation.js.map +1 -1
  82. package/lib/module/extractPathFromURL.js +4 -4
  83. package/lib/module/extractPathFromURL.js.map +1 -1
  84. package/lib/module/index.js +12 -12
  85. package/lib/module/index.js.map +1 -1
  86. package/lib/module/theming/DarkTheme.js +4 -3
  87. package/lib/module/theming/DarkTheme.js.map +1 -1
  88. package/lib/module/theming/DefaultTheme.js +4 -3
  89. package/lib/module/theming/DefaultTheme.js.map +1 -1
  90. package/lib/module/theming/fonts.js +59 -0
  91. package/lib/module/theming/fonts.js.map +1 -0
  92. package/lib/module/types.js.map +1 -1
  93. package/lib/module/useBackButton.js +3 -17
  94. package/lib/module/useBackButton.js.map +1 -1
  95. package/lib/module/useBackButton.native.js +19 -0
  96. package/lib/module/useBackButton.native.js.map +1 -0
  97. package/lib/module/useDocumentTitle.js +4 -4
  98. package/lib/module/useDocumentTitle.js.map +1 -1
  99. package/lib/module/useDocumentTitle.native.js +1 -1
  100. package/lib/module/useDocumentTitle.native.js.map +1 -1
  101. package/lib/module/{useLinkTools.js → useLinkBuilder.js} +11 -11
  102. package/lib/module/useLinkBuilder.js.map +1 -0
  103. package/lib/module/useLinkProps.js +20 -23
  104. package/lib/module/useLinkProps.js.map +1 -1
  105. package/lib/module/useLinkTo.js +23 -0
  106. package/lib/module/useLinkTo.js.map +1 -0
  107. package/lib/module/useLinking.js +33 -36
  108. package/lib/module/useLinking.js.map +1 -1
  109. package/lib/module/useLinking.native.js +29 -22
  110. package/lib/module/useLinking.native.js.map +1 -1
  111. package/lib/module/useLocale.js +16 -0
  112. package/lib/module/useLocale.js.map +1 -0
  113. package/lib/module/useScrollToTop.js +8 -6
  114. package/lib/module/useScrollToTop.js.map +1 -1
  115. package/lib/module/useThenable.js +2 -1
  116. package/lib/module/useThenable.js.map +1 -1
  117. package/lib/module/useUnhandledLinking.js +69 -0
  118. package/lib/module/useUnhandledLinking.js.map +1 -0
  119. package/lib/typescript/src/Link.d.ts +3 -3
  120. package/lib/typescript/src/Link.d.ts.map +1 -1
  121. package/lib/typescript/src/LinkingContext.d.ts +2 -3
  122. package/lib/typescript/src/LinkingContext.d.ts.map +1 -1
  123. package/lib/typescript/src/LocaleDirContext.d.ts +4 -0
  124. package/lib/typescript/src/LocaleDirContext.d.ts.map +1 -0
  125. package/lib/typescript/src/NavigationContainer.d.ts +6 -6
  126. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  127. package/lib/typescript/src/ServerContainer.d.ts +2 -3
  128. package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
  129. package/lib/typescript/src/ServerContext.d.ts +1 -2
  130. package/lib/typescript/src/ServerContext.d.ts.map +1 -1
  131. package/lib/typescript/src/UnhandledLinkingContext.d.ts +6 -0
  132. package/lib/typescript/src/UnhandledLinkingContext.d.ts.map +1 -0
  133. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +32 -0
  134. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -0
  135. package/lib/typescript/src/{__mocks__ → __stubs__}/window.d.ts +2 -3
  136. package/lib/typescript/src/__stubs__/window.d.ts.map +1 -0
  137. package/lib/typescript/src/createMemoryHistory.d.ts +1 -1
  138. package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -1
  139. package/lib/typescript/src/createStaticNavigation.d.ts +3 -3
  140. package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
  141. package/lib/typescript/src/extractPathFromURL.d.ts +1 -1
  142. package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -1
  143. package/lib/typescript/src/index.d.ts +12 -12
  144. package/lib/typescript/src/index.d.ts.map +1 -1
  145. package/lib/typescript/src/theming/DarkTheme.d.ts +1 -2
  146. package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -1
  147. package/lib/typescript/src/theming/DefaultTheme.d.ts +1 -2
  148. package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -1
  149. package/lib/typescript/src/theming/fonts.d.ts +53 -0
  150. package/lib/typescript/src/theming/fonts.d.ts.map +1 -0
  151. package/lib/typescript/src/types.d.ts +41 -11
  152. package/lib/typescript/src/types.d.ts.map +1 -1
  153. package/lib/typescript/src/useBackButton.d.ts +2 -2
  154. package/lib/typescript/src/useBackButton.d.ts.map +1 -1
  155. package/lib/typescript/src/useBackButton.native.d.ts +4 -0
  156. package/lib/typescript/src/useBackButton.native.d.ts.map +1 -0
  157. package/lib/typescript/src/useDocumentTitle.d.ts +1 -1
  158. package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -1
  159. package/lib/typescript/src/useDocumentTitle.native.d.ts +1 -1
  160. package/lib/typescript/src/useDocumentTitle.native.d.ts.map +1 -1
  161. package/lib/typescript/src/useLinkBuilder.d.ts +25 -0
  162. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -0
  163. package/lib/typescript/src/useLinkProps.d.ts +3 -3
  164. package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
  165. package/lib/typescript/src/useLinkTo.d.ts +6 -0
  166. package/lib/typescript/src/useLinkTo.d.ts.map +1 -0
  167. package/lib/typescript/src/useLinking.d.ts +8 -20
  168. package/lib/typescript/src/useLinking.d.ts.map +1 -1
  169. package/lib/typescript/src/useLinking.native.d.ts +4 -20
  170. package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
  171. package/lib/typescript/src/useLocale.d.ts +7 -0
  172. package/lib/typescript/src/useLocale.d.ts.map +1 -0
  173. package/lib/typescript/src/useScrollToTop.d.ts +1 -1
  174. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
  175. package/lib/typescript/src/useThenable.d.ts +1 -1
  176. package/lib/typescript/src/useThenable.d.ts.map +1 -1
  177. package/lib/typescript/src/useUnhandledLinking.d.ts +7 -0
  178. package/lib/typescript/src/useUnhandledLinking.d.ts.map +1 -0
  179. package/package.json +15 -15
  180. package/src/Link.tsx +12 -3
  181. package/src/LinkingContext.tsx +9 -5
  182. package/src/LocaleDirContext.tsx +7 -0
  183. package/src/NavigationContainer.tsx +90 -36
  184. package/src/ServerContainer.tsx +2 -2
  185. package/src/ServerContext.tsx +1 -3
  186. package/src/UnhandledLinkingContext.tsx +18 -0
  187. package/src/{__mocks__ → __stubs__}/createStackNavigator.tsx +1 -3
  188. package/src/{__mocks__ → __stubs__}/window.tsx +8 -8
  189. package/src/createMemoryHistory.tsx +1 -1
  190. package/src/createStaticNavigation.tsx +8 -8
  191. package/src/extractPathFromURL.tsx +5 -2
  192. package/src/index.tsx +12 -12
  193. package/src/theming/DarkTheme.tsx +3 -3
  194. package/src/theming/DefaultTheme.tsx +3 -3
  195. package/src/theming/fonts.tsx +63 -0
  196. package/src/types.tsx +55 -11
  197. package/src/useBackButton.native.tsx +33 -0
  198. package/src/useBackButton.tsx +4 -26
  199. package/src/useDocumentTitle.native.tsx +1 -1
  200. package/src/useDocumentTitle.tsx +1 -1
  201. package/src/{useLinkTools.tsx → useLinkBuilder.tsx} +9 -9
  202. package/src/useLinkProps.tsx +27 -23
  203. package/src/useLinkTo.tsx +30 -0
  204. package/src/useLinking.native.tsx +28 -22
  205. package/src/useLinking.tsx +46 -44
  206. package/src/useLocale.tsx +18 -0
  207. package/src/useScrollToTop.tsx +14 -10
  208. package/src/useThenable.tsx +2 -1
  209. package/src/useUnhandledLinking.tsx +91 -0
  210. package/lib/commonjs/theming/ThemeContext.js +0 -16
  211. package/lib/commonjs/theming/ThemeContext.js.map +0 -1
  212. package/lib/commonjs/theming/ThemeProvider.js +0 -21
  213. package/lib/commonjs/theming/ThemeProvider.js.map +0 -1
  214. package/lib/commonjs/theming/useTheme.js +0 -16
  215. package/lib/commonjs/theming/useTheme.js.map +0 -1
  216. package/lib/commonjs/useLinkTools.js +0 -81
  217. package/lib/commonjs/useLinkTools.js.map +0 -1
  218. package/lib/module/theming/ThemeContext.js +0 -6
  219. package/lib/module/theming/ThemeContext.js.map +0 -1
  220. package/lib/module/theming/ThemeProvider.js +0 -12
  221. package/lib/module/theming/ThemeProvider.js.map +0 -1
  222. package/lib/module/theming/useTheme.js +0 -7
  223. package/lib/module/theming/useTheme.js.map +0 -1
  224. package/lib/module/useLinkTools.js.map +0 -1
  225. package/lib/typescript/src/__mocks__/createStackNavigator.d.ts +0 -57
  226. package/lib/typescript/src/__mocks__/createStackNavigator.d.ts.map +0 -1
  227. package/lib/typescript/src/__mocks__/window.d.ts.map +0 -1
  228. package/lib/typescript/src/theming/ThemeContext.d.ts +0 -5
  229. package/lib/typescript/src/theming/ThemeContext.d.ts.map +0 -1
  230. package/lib/typescript/src/theming/ThemeProvider.d.ts +0 -9
  231. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +0 -1
  232. package/lib/typescript/src/theming/useTheme.d.ts +0 -2
  233. package/lib/typescript/src/theming/useTheme.d.ts.map +0 -1
  234. package/lib/typescript/src/useLinkTools.d.ts +0 -33
  235. package/lib/typescript/src/useLinkTools.d.ts.map +0 -1
  236. package/src/theming/ThemeContext.tsx +0 -10
  237. package/src/theming/ThemeProvider.tsx +0 -15
  238. package/src/theming/useTheme.tsx +0 -9
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useLinkBuilder = useLinkBuilder;
7
+ var _core = require("@react-navigation/core");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _LinkingContext = require("./LinkingContext");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ const getRootStateForNavigate = (navigation, state) => {
13
+ const parent = navigation.getParent();
14
+ if (parent) {
15
+ const parentState = parent.getState();
16
+ return getRootStateForNavigate(parent, {
17
+ index: 0,
18
+ routes: [{
19
+ ...parentState.routes[parentState.index],
20
+ state: state
21
+ }]
22
+ });
23
+ }
24
+ return state;
25
+ };
26
+
27
+ /**
28
+ * Helpers to build href or action based on the linking options.
29
+ * @returns `buildHref` to build an `href` for screen and `buildAction` to build an action from an `href`.
30
+ */
31
+ function useLinkBuilder() {
32
+ const navigation = React.useContext(_core.NavigationHelpersContext);
33
+ const linking = React.useContext(_LinkingContext.LinkingContext);
34
+ const buildHref = React.useCallback((name, params) => {
35
+ const {
36
+ options
37
+ } = linking;
38
+ if (options?.enabled === false) {
39
+ return undefined;
40
+ }
41
+ const state = navigation ? getRootStateForNavigate(navigation, {
42
+ index: 0,
43
+ routes: [{
44
+ name,
45
+ params
46
+ }]
47
+ }) :
48
+ // If we couldn't find a navigation object in context, we're at root
49
+ // So we'll construct a basic state object to use
50
+ {
51
+ index: 0,
52
+ routes: [{
53
+ name,
54
+ params
55
+ }]
56
+ };
57
+ const path = options?.getPathFromState ? options.getPathFromState(state, options?.config) : (0, _core.getPathFromState)(state, options?.config);
58
+ return path;
59
+ }, [linking, navigation]);
60
+ const buildAction = React.useCallback(href => {
61
+ if (!href.startsWith('/')) {
62
+ throw new Error(`The href must start with '/' (${href}).`);
63
+ }
64
+ const {
65
+ options
66
+ } = linking;
67
+ const state = options?.getStateFromPath ? options.getStateFromPath(href, options.config) : (0, _core.getStateFromPath)(href, options?.config);
68
+ if (state) {
69
+ const action = (0, _core.getActionFromState)(state, options?.config);
70
+ return action ?? _core.CommonActions.reset(state);
71
+ } else {
72
+ throw new Error('Failed to parse the href to a navigation state.');
73
+ }
74
+ }, [linking]);
75
+ return {
76
+ buildHref,
77
+ buildAction
78
+ };
79
+ }
80
+ //# sourceMappingURL=useLinkBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","React","_interopRequireWildcard","_LinkingContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","getRootStateForNavigate","navigation","state","parent","getParent","parentState","getState","index","routes","useLinkBuilder","useContext","NavigationHelpersContext","linking","LinkingContext","buildHref","useCallback","name","params","options","enabled","undefined","path","getPathFromState","config","buildAction","href","startsWith","Error","getStateFromPath","action","getActionFromState","CommonActions","reset"],"sourceRoot":"../../src","sources":["useLinkBuilder.tsx"],"mappings":"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"}
@@ -3,24 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = useLinkProps;
6
+ exports.useLinkProps = useLinkProps;
7
7
  var _core = require("@react-navigation/core");
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _reactNative = require("react-native");
10
- var _LinkingContext = _interopRequireDefault(require("./LinkingContext"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ var _LinkingContext = require("./LinkingContext");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
13
  const getStateFromParams = params => {
15
- if (params !== null && params !== void 0 && params.state) {
14
+ if (params?.state) {
16
15
  return params.state;
17
16
  }
18
- if (params !== null && params !== void 0 && params.screen) {
17
+ if (params?.screen) {
19
18
  return {
20
19
  routes: [{
21
20
  name: params.screen,
22
21
  params: params.params,
23
- // @ts-expect-error
22
+ // @ts-expect-error this is fine 🔥
24
23
  state: params.screen ? getStateFromParams(params.params) : undefined
25
24
  }]
26
25
  };
@@ -47,23 +46,20 @@ function useLinkProps(_ref) {
47
46
  const navigation = React.useContext(_core.NavigationHelpersContext);
48
47
  const {
49
48
  options
50
- } = React.useContext(_LinkingContext.default);
49
+ } = React.useContext(_LinkingContext.LinkingContext);
51
50
  const onPress = e => {
52
- var _e$currentTarget;
53
- let shouldHandle = false;
54
- if (_reactNative.Platform.OS !== 'web' || !e) {
55
- shouldHandle = e ? !e.defaultPrevented : true;
56
- } else if (!e.defaultPrevented &&
57
- // onPress prevented default
58
51
  // @ts-expect-error: these properties exist on web, but not in React Native
59
- !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (
60
- // ignore clicks with modifier keys
52
+ const hasModifierKey = e.metaKey || e.altKey || e.ctrlKey || e.shiftKey; // ignore clicks with modifier keys
61
53
  // @ts-expect-error: these properties exist on web, but not in React Native
62
- e.button == null || e.button === 0) &&
63
- // ignore everything but left clicks
54
+ const isLeftClick = e.button == null || e.button === 0; // only handle left clicks
55
+ const isSelfTarget = [undefined, null, '', 'self'].includes(
64
56
  // @ts-expect-error: these properties exist on web, but not in React Native
65
- [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
66
- ) {
57
+ e.currentTarget?.target); // let browser handle "target=_blank" etc.
58
+
59
+ let shouldHandle = false;
60
+ if (_reactNative.Platform.OS !== 'web' || !e) {
61
+ shouldHandle = true;
62
+ } else if (!hasModifierKey && isLeftClick && isSelfTarget) {
67
63
  e.preventDefault();
68
64
  shouldHandle = true;
69
65
  }
@@ -77,22 +73,22 @@ function useLinkProps(_ref) {
77
73
  throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
78
74
  }
79
75
  } else {
80
- // @ts-expect-error: This is already type-checked by the prop types
81
- navigation === null || navigation === void 0 ? void 0 : navigation.navigate(screen, params);
76
+ // @ts-expect-error This is already type-checked by the prop types
77
+ navigation?.navigate(screen, params);
82
78
  }
83
79
  }
84
80
  };
85
- const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? _core.getPathFromState;
81
+ const getPathFromStateHelper = options?.getPathFromState ?? _core.getPathFromState;
86
82
  return {
87
83
  href: href ?? (_reactNative.Platform.OS === 'web' && screen != null ? getPathFromStateHelper({
88
84
  routes: [{
89
85
  name: screen,
90
- // @ts-expect-error
86
+ // @ts-expect-error this is fine 🔥
91
87
  params: params,
92
- // @ts-expect-error
88
+ // @ts-expect-error this is fine 🔥
93
89
  state: getStateFromParams(params)
94
90
  }]
95
- }, options === null || options === void 0 ? void 0 : options.config) : undefined),
91
+ }, options?.config) : undefined),
96
92
  accessibilityRole: 'link',
97
93
  onPress
98
94
  };
@@ -1 +1 @@
1
- {"version":3,"names":["getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","href","action","root","React","useContext","NavigationContainerRefContext","navigation","NavigationHelpersContext","options","LinkingContext","onPress","e","shouldHandle","Platform","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","navigate","getPathFromStateHelper","getPathFromState","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_core","require","React","_interopRequireWildcard","_reactNative","_LinkingContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","_ref","href","action","root","useContext","NavigationContainerRefContext","navigation","NavigationHelpersContext","options","LinkingContext","onPress","hasModifierKey","metaKey","altKey","ctrlKey","shiftKey","isLeftClick","button","isSelfTarget","includes","currentTarget","target","shouldHandle","Platform","OS","preventDefault","dispatch","Error","navigate","getPathFromStateHelper","getPathFromState","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useLinkTo = useLinkTo;
7
+ var _core = require("@react-navigation/core");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _useLinkBuilder = require("./useLinkBuilder");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ /**
13
+ * Helper to navigate to a screen using a href based on the linking options.
14
+ * @returns function that receives the href to navigate to.
15
+ */
16
+ function useLinkTo() {
17
+ const navigation = React.useContext(_core.NavigationContainerRefContext);
18
+ const {
19
+ buildAction
20
+ } = (0, _useLinkBuilder.useLinkBuilder)();
21
+ const linkTo = React.useCallback(href => {
22
+ if (navigation === undefined) {
23
+ throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
24
+ }
25
+ const action = buildAction(href);
26
+ navigation.dispatch(action);
27
+ }, [buildAction, navigation]);
28
+ return linkTo;
29
+ }
30
+ //# sourceMappingURL=useLinkTo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","React","_interopRequireWildcard","_useLinkBuilder","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useLinkTo","navigation","useContext","NavigationContainerRefContext","buildAction","useLinkBuilder","linkTo","useCallback","href","undefined","Error","action","dispatch"],"sourceRoot":"../../src","sources":["useLinkTo.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAAkD,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAElD;AACA;AACA;AACA;AACO,SAASY,SAASA,CAAA,EAAG;EAC1B,MAAMC,UAAU,GAAGzB,KAAK,CAAC0B,UAAU,CAACC,mCAA6B,CAAC;EAClE,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,8BAAc,EAAC,CAAC;EAExC,MAAMC,MAAM,GAAG9B,KAAK,CAAC+B,WAAW,CAC7BC,IAAY,IAAK;IAChB,IAAIP,UAAU,KAAKQ,SAAS,EAAE;MAC5B,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;IACH;IAEA,MAAMC,MAAM,GAAGP,WAAW,CAACI,IAAI,CAAC;IAEhCP,UAAU,CAACW,QAAQ,CAACD,MAAM,CAAC;EAC7B,CAAC,EACD,CAACP,WAAW,EAAEH,UAAU,CAC1B,CAAC;EAED,OAAOK,MAAM;AACf"}
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = useLinking;
6
+ exports.series = void 0;
7
+ exports.useLinking = useLinking;
7
8
  var _core = require("@react-navigation/core");
8
9
  var _fastDeepEqual = _interopRequireDefault(require("fast-deep-equal"));
9
10
  var React = _interopRequireWildcard(require("react"));
10
- var _createMemoryHistory = _interopRequireDefault(require("./createMemoryHistory"));
11
- var _ServerContext = _interopRequireDefault(require("./ServerContext"));
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ var _createMemoryHistory = require("./createMemoryHistory");
12
+ var _ServerContext = require("./ServerContext");
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
  /**
16
17
  * Find the matching navigation state that changed between 2 navigation states
@@ -44,32 +45,16 @@ const findMatchingState = (a, b) => {
44
45
  * Run async function in series as it's called.
45
46
  */
46
47
  const series = cb => {
47
- // Whether we're currently handling a callback
48
- let handling = false;
49
- let queue = [];
50
- const callback = async () => {
51
- try {
52
- if (handling) {
53
- // If we're currently handling a previous event, wait before handling this one
54
- // Add the callback to the beginning of the queue
55
- queue.unshift(callback);
56
- return;
57
- }
58
- handling = true;
59
- await cb();
60
- } finally {
61
- handling = false;
62
- if (queue.length) {
63
- // If we have queued items, handle the last one
64
- const last = queue.pop();
65
- last === null || last === void 0 ? void 0 : last();
66
- }
67
- }
48
+ let queue = Promise.resolve();
49
+ const callback = () => {
50
+ // eslint-disable-next-line promise/no-callback-in-promise
51
+ queue = queue.then(cb);
68
52
  };
69
53
  return callback;
70
54
  };
71
- let linkingHandlers = [];
72
- function useLinking(ref, _ref) {
55
+ exports.series = series;
56
+ const linkingHandlers = [];
57
+ function useLinking(ref, _ref, onUnhandledLinking) {
73
58
  let {
74
59
  enabled = true,
75
60
  config,
@@ -99,7 +84,7 @@ function useLinking(ref, _ref) {
99
84
  }
100
85
  };
101
86
  }, [enabled, independent]);
102
- const [history] = React.useState(_createMemoryHistory.default);
87
+ const [history] = React.useState(_createMemoryHistory.createMemoryHistory);
103
88
 
104
89
  // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners
105
90
  // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`
@@ -116,15 +101,25 @@ function useLinking(ref, _ref) {
116
101
  getPathFromStateRef.current = getPathFromState;
117
102
  getActionFromStateRef.current = getActionFromState;
118
103
  });
119
- const server = React.useContext(_ServerContext.default);
104
+ const validateRoutesNotExistInRootState = React.useCallback(state => {
105
+ const navigation = ref.current;
106
+ const rootState = navigation?.getRootState();
107
+ // Make sure that the routes in the state exist in the root navigator
108
+ // Otherwise there's an error in the linking configuration
109
+ return state?.routes.some(r => !rootState?.routeNames.includes(r.name));
110
+ }, [ref]);
111
+ const server = React.useContext(_ServerContext.ServerContext);
120
112
  const getInitialState = React.useCallback(() => {
121
113
  let value;
122
114
  if (enabledRef.current) {
123
- const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);
115
+ const location = server?.location ?? (typeof window !== 'undefined' ? window.location : undefined);
124
116
  const path = location ? location.pathname + location.search : undefined;
125
117
  if (path) {
126
118
  value = getStateFromPathRef.current(path, configRef.current);
127
119
  }
120
+
121
+ // If the link were handled, it gets cleared in NavigationContainer
122
+ onUnhandledLinking(path);
128
123
  }
129
124
  const thenable = {
130
125
  then(onfulfilled) {
@@ -147,6 +142,9 @@ function useLinking(ref, _ref) {
147
142
  if (!navigation || !enabled) {
148
143
  return;
149
144
  }
145
+ const {
146
+ location
147
+ } = window;
150
148
  const path = location.pathname + location.search;
151
149
  const index = history.index;
152
150
  const previousIndex = previousIndexRef.current ?? 0;
@@ -157,7 +155,7 @@ function useLinking(ref, _ref) {
157
155
  // If it does we'll reset to that state object
158
156
  // Otherwise, we'll handle it like a regular deep link
159
157
  const record = history.get(index);
160
- if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {
158
+ if (record?.path === path && record?.state) {
161
159
  navigation.resetRoot(record.state);
162
160
  return;
163
161
  }
@@ -166,11 +164,11 @@ function useLinking(ref, _ref) {
166
164
  // We should only dispatch an action when going forward
167
165
  // Otherwise the action will likely add items to history, which would mess things up
168
166
  if (state) {
167
+ // If the link were handled, it gets cleared in NavigationContainer
168
+ onUnhandledLinking(path);
169
169
  // Make sure that the routes in the state exist in the root navigator
170
170
  // Otherwise there's an error in the linking configuration
171
- const rootState = navigation.getRootState();
172
- if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
173
- 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.");
171
+ if (validateRoutesNotExistInRootState(state)) {
174
172
  return;
175
173
  }
176
174
  if (index > previousIndex) {
@@ -194,16 +192,15 @@ function useLinking(ref, _ref) {
194
192
  navigation.resetRoot(state);
195
193
  }
196
194
  });
197
- }, [enabled, history, ref]);
195
+ }, [enabled, history, onUnhandledLinking, ref, validateRoutesNotExistInRootState]);
198
196
  React.useEffect(() => {
199
- var _ref$current;
200
197
  if (!enabled) {
201
198
  return;
202
199
  }
203
200
  const getPathForRoute = (route, state) => {
204
201
  // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
205
202
  // This makes sure that we preserve the original URL for wildcard routes
206
- if (route !== null && route !== void 0 && route.path) {
203
+ if (route?.path) {
207
204
  const stateForPath = getStateFromPathRef.current(route.path, configRef.current);
208
205
  if (stateForPath) {
209
206
  const focusedRoute = (0, _core.findFocusedRoute)(stateForPath);
@@ -273,7 +270,9 @@ function useLinking(ref, _ref) {
273
270
  });
274
271
  const currentIndex = history.index;
275
272
  try {
276
- if (nextIndex !== -1 && nextIndex < currentIndex) {
273
+ if (nextIndex !== -1 && nextIndex < currentIndex &&
274
+ // We should only go back if the entry exists and it's less than current index
275
+ history.get(nextIndex - currentIndex)) {
277
276
  // An existing entry for this path exists and it's less than current index, go back to that
278
277
  await history.go(nextIndex - currentIndex);
279
278
  } else {
@@ -311,7 +310,7 @@ function useLinking(ref, _ref) {
311
310
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
312
311
  // This could happen since `history.go(n)` is asynchronous
313
312
  // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up
314
- return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));
313
+ return ref.current?.addListener('state', series(onStateChange));
315
314
  }, [enabled, history, ref]);
316
315
  return {
317
316
  getInitialState
@@ -1 +1 @@
1
- {"version":3,"names":["findMatchingState","a","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","handling","queue","callback","unshift","last","pop","linkingHandlers","useLinking","ref","enabled","config","getStateFromPath","getStateFromPathDefault","getPathFromState","getPathFromStateDefault","getActionFromState","getActionFromStateDefault","independent","useNavigationIndependentTree","React","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","createMemoryHistory","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","server","useContext","ServerContext","getInitialState","useCallback","value","location","window","path","pathname","search","thenable","then","onfulfilled","Promise","resolve","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","navigation","previousIndex","record","get","resetRoot","rootState","getRootState","some","r","routeNames","includes","name","warn","action","dispatch","e","message","getPathForRoute","route","stateForPath","focusedRoute","findFocusedRoute","isEqual","params","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_core","require","_fastDeepEqual","_interopRequireDefault","React","_interopRequireWildcard","_createMemoryHistory","_ServerContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","findMatchingState","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","queue","Promise","resolve","callback","then","exports","linkingHandlers","useLinking","ref","_ref","onUnhandledLinking","enabled","config","getStateFromPath","getStateFromPathDefault","getPathFromState","getPathFromStateDefault","getActionFromState","getActionFromStateDefault","independent","useNavigationIndependentTree","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","useState","createMemoryHistory","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","routeNames","includes","name","server","useContext","ServerContext","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","record","resetRoot","action","dispatch","warn","message","getPathForRoute","route","stateForPath","focusedRoute","findFocusedRoute","isEqual","params","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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"}
@@ -3,27 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = useLinking;
6
+ exports.useLinking = useLinking;
7
7
  var _core = require("@react-navigation/core");
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _reactNative = require("react-native");
10
- var _extractPathFromURL = _interopRequireDefault(require("./extractPathFromURL"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
- let linkingHandlers = [];
15
- function useLinking(ref, _ref) {
10
+ var _extractPathFromURL = require("./extractPathFromURL");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ const linkingHandlers = [];
14
+ function useLinking(ref, _ref, onUnhandledLinking) {
16
15
  let {
17
16
  enabled = true,
18
17
  prefixes,
19
18
  filter,
20
19
  config,
21
- getInitialURL = () => Promise.race([_reactNative.Linking.getInitialURL(), new Promise(resolve =>
22
- // Timeout in 150ms if `getInitialState` doesn't resolve
23
- // Workaround for https://github.com/facebook/react-native/issues/25675
24
- setTimeout(resolve, 150))]),
20
+ getInitialURL = () => Promise.race([_reactNative.Linking.getInitialURL(), new Promise(resolve => {
21
+ // Timeout in 150ms if `getInitialState` doesn't resolve
22
+ // Workaround for https://github.com/facebook/react-native/issues/25675
23
+ setTimeout(resolve, 150);
24
+ })]),
25
25
  subscribe = listener => {
26
- var _Linking$removeEventL;
27
26
  const callback = _ref2 => {
28
27
  let {
29
28
  url
@@ -34,13 +33,13 @@ function useLinking(ref, _ref) {
34
33
 
35
34
  // Storing this in a local variable stops Jest from complaining about import after teardown
36
35
  // @ts-expect-error: removeEventListener is not present in newer RN versions
37
- const removeEventListener = (_Linking$removeEventL = _reactNative.Linking.removeEventListener) === null || _Linking$removeEventL === void 0 ? void 0 : _Linking$removeEventL.bind(_reactNative.Linking);
36
+ const removeEventListener = _reactNative.Linking.removeEventListener?.bind(_reactNative.Linking);
38
37
  return () => {
39
38
  // https://github.com/facebook/react-native/commit/6d1aca806cee86ad76de771ed3a1cc62982ebcd7
40
- if (subscription !== null && subscription !== void 0 && subscription.remove) {
39
+ if (subscription?.remove) {
41
40
  subscription.remove();
42
41
  } else {
43
- removeEventListener === null || removeEventListener === void 0 ? void 0 : removeEventListener('url', callback);
42
+ removeEventListener?.('url', callback);
44
43
  }
45
44
  };
46
45
  },
@@ -93,18 +92,26 @@ function useLinking(ref, _ref) {
93
92
  if (!url || filterRef.current && !filterRef.current(url)) {
94
93
  return undefined;
95
94
  }
96
- const path = (0, _extractPathFromURL.default)(prefixesRef.current, url);
95
+ const path = (0, _extractPathFromURL.extractPathFromURL)(prefixesRef.current, url);
97
96
  return path !== undefined ? getStateFromPathRef.current(path, configRef.current) : undefined;
98
97
  }, []);
99
98
  const getInitialState = React.useCallback(() => {
100
99
  let state;
101
100
  if (enabledRef.current) {
102
101
  const url = getInitialURLRef.current();
103
- if (url != null && typeof url !== 'string') {
104
- return url.then(url => {
105
- const state = getStateFromURL(url);
106
- return state;
107
- });
102
+ if (url != null) {
103
+ if (typeof url !== 'string') {
104
+ return url.then(url => {
105
+ const state = getStateFromURL(url);
106
+ if (typeof url === 'string') {
107
+ // If the link were handled, it gets cleared in NavigationContainer
108
+ onUnhandledLinking((0, _extractPathFromURL.extractPathFromURL)(prefixes, url));
109
+ }
110
+ return state;
111
+ });
112
+ } else {
113
+ onUnhandledLinking((0, _extractPathFromURL.extractPathFromURL)(prefixes, url));
114
+ }
108
115
  }
109
116
  state = getStateFromURL(url);
110
117
  }
@@ -117,7 +124,7 @@ function useLinking(ref, _ref) {
117
124
  }
118
125
  };
119
126
  return thenable;
120
- }, [getStateFromURL]);
127
+ }, [getStateFromURL, onUnhandledLinking, prefixes]);
121
128
  React.useEffect(() => {
122
129
  const listener = url => {
123
130
  if (!enabled) {
@@ -126,11 +133,10 @@ function useLinking(ref, _ref) {
126
133
  const navigation = ref.current;
127
134
  const state = navigation ? getStateFromURL(url) : undefined;
128
135
  if (navigation && state) {
129
- // Make sure that the routes in the state exist in the root navigator
130
- // Otherwise there's an error in the linking configuration
136
+ // If the link were handled, it gets cleared in NavigationContainer
137
+ onUnhandledLinking((0, _extractPathFromURL.extractPathFromURL)(prefixes, url));
131
138
  const rootState = navigation.getRootState();
132
- if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
133
- 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.");
139
+ if (state.routes.some(r => !rootState?.routeNames.includes(r.name))) {
134
140
  return;
135
141
  }
136
142
  const action = getActionFromStateRef.current(state, configRef.current);
@@ -148,7 +154,7 @@ function useLinking(ref, _ref) {
148
154
  }
149
155
  };
150
156
  return subscribe(listener);
151
- }, [enabled, getStateFromURL, ref, subscribe]);
157
+ }, [enabled, getStateFromURL, onUnhandledLinking, prefixes, ref, subscribe]);
152
158
  return {
153
159
  getInitialState
154
160
  };