@amazon-devices/react-navigation__native 2.0.1758683737

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 (189) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +5 -0
  3. package/SystemBundles/6132afb62bda3afb78ba1a1aca51924df73e9dbcc77106aa0f97a0ef68b04ebb.bundle +15196 -0
  4. package/SystemBundles/6132afb62bda3afb78ba1a1aca51924df73e9dbcc77106aa0f97a0ef68b04ebb.map +1 -0
  5. package/SystemModules/amzn__react-navigation__native-2.modules.txt +76 -0
  6. package/SystemModules/amzn__react-navigation__native-2.private.modules.txt +101 -0
  7. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  8. package/THIRD_PARTY_NOTICES.txt +24 -0
  9. package/kepler-compatibility.json +8 -0
  10. package/kepler-transformed-package-info.json +3 -0
  11. package/lib/commonjs/Link.js +50 -0
  12. package/lib/commonjs/Link.js.map +1 -0
  13. package/lib/commonjs/LinkingContext.js +15 -0
  14. package/lib/commonjs/LinkingContext.js.map +1 -0
  15. package/lib/commonjs/NavigationContainer.js +109 -0
  16. package/lib/commonjs/NavigationContainer.js.map +1 -0
  17. package/lib/commonjs/ServerContainer.js +54 -0
  18. package/lib/commonjs/ServerContainer.js.map +1 -0
  19. package/lib/commonjs/ServerContext.js +12 -0
  20. package/lib/commonjs/ServerContext.js.map +1 -0
  21. package/lib/commonjs/createMemoryHistory.js +220 -0
  22. package/lib/commonjs/createMemoryHistory.js.map +1 -0
  23. package/lib/commonjs/extractPathFromURL.js +25 -0
  24. package/lib/commonjs/extractPathFromURL.js.map +1 -0
  25. package/lib/commonjs/index.js +129 -0
  26. package/lib/commonjs/index.js.map +1 -0
  27. package/lib/commonjs/theming/DarkTheme.js +19 -0
  28. package/lib/commonjs/theming/DarkTheme.js.map +1 -0
  29. package/lib/commonjs/theming/DefaultTheme.js +19 -0
  30. package/lib/commonjs/theming/DefaultTheme.js.map +1 -0
  31. package/lib/commonjs/theming/ThemeContext.js +15 -0
  32. package/lib/commonjs/theming/ThemeContext.js.map +1 -0
  33. package/lib/commonjs/theming/ThemeProvider.js +20 -0
  34. package/lib/commonjs/theming/ThemeProvider.js.map +1 -0
  35. package/lib/commonjs/theming/useTheme.js +16 -0
  36. package/lib/commonjs/theming/useTheme.js.map +1 -0
  37. package/lib/commonjs/types.js +6 -0
  38. package/lib/commonjs/types.js.map +1 -0
  39. package/lib/commonjs/useBackButton.js +11 -0
  40. package/lib/commonjs/useBackButton.js.map +1 -0
  41. package/lib/commonjs/useBackButton.native.js +27 -0
  42. package/lib/commonjs/useBackButton.native.js.map +1 -0
  43. package/lib/commonjs/useDocumentTitle.js +32 -0
  44. package/lib/commonjs/useDocumentTitle.js.map +1 -0
  45. package/lib/commonjs/useDocumentTitle.native.js +10 -0
  46. package/lib/commonjs/useDocumentTitle.native.js.map +1 -0
  47. package/lib/commonjs/useLinkBuilder.js +63 -0
  48. package/lib/commonjs/useLinkBuilder.js.map +1 -0
  49. package/lib/commonjs/useLinkProps.js +97 -0
  50. package/lib/commonjs/useLinkProps.js.map +1 -0
  51. package/lib/commonjs/useLinkTo.js +45 -0
  52. package/lib/commonjs/useLinkTo.js.map +1 -0
  53. package/lib/commonjs/useLinking.js +303 -0
  54. package/lib/commonjs/useLinking.js.map +1 -0
  55. package/lib/commonjs/useLinking.native.js +152 -0
  56. package/lib/commonjs/useLinking.native.js.map +1 -0
  57. package/lib/commonjs/useScrollToTop.js +95 -0
  58. package/lib/commonjs/useScrollToTop.js.map +1 -0
  59. package/lib/commonjs/useThenable.js +41 -0
  60. package/lib/commonjs/useThenable.js.map +1 -0
  61. package/lib/module/Link.js +41 -0
  62. package/lib/module/Link.js.map +1 -0
  63. package/lib/module/LinkingContext.js +7 -0
  64. package/lib/module/LinkingContext.js.map +1 -0
  65. package/lib/module/NavigationContainer.js +100 -0
  66. package/lib/module/NavigationContainer.js.map +1 -0
  67. package/lib/module/ServerContainer.js +45 -0
  68. package/lib/module/ServerContainer.js.map +1 -0
  69. package/lib/module/ServerContext.js +4 -0
  70. package/lib/module/ServerContext.js.map +1 -0
  71. package/lib/module/createMemoryHistory.js +214 -0
  72. package/lib/module/createMemoryHistory.js.map +1 -0
  73. package/lib/module/extractPathFromURL.js +18 -0
  74. package/lib/module/extractPathFromURL.js.map +1 -0
  75. package/lib/module/index.js +15 -0
  76. package/lib/module/index.js.map +1 -0
  77. package/lib/module/theming/DarkTheme.js +13 -0
  78. package/lib/module/theming/DarkTheme.js.map +1 -0
  79. package/lib/module/theming/DefaultTheme.js +13 -0
  80. package/lib/module/theming/DefaultTheme.js.map +1 -0
  81. package/lib/module/theming/ThemeContext.js +6 -0
  82. package/lib/module/theming/ThemeContext.js.map +1 -0
  83. package/lib/module/theming/ThemeProvider.js +11 -0
  84. package/lib/module/theming/ThemeProvider.js.map +1 -0
  85. package/lib/module/theming/useTheme.js +7 -0
  86. package/lib/module/theming/useTheme.js.map +1 -0
  87. package/lib/module/types.js +2 -0
  88. package/lib/module/types.js.map +1 -0
  89. package/lib/module/useBackButton.js +5 -0
  90. package/lib/module/useBackButton.js.map +1 -0
  91. package/lib/module/useBackButton.native.js +19 -0
  92. package/lib/module/useBackButton.native.js.map +1 -0
  93. package/lib/module/useDocumentTitle.js +24 -0
  94. package/lib/module/useDocumentTitle.js.map +1 -0
  95. package/lib/module/useDocumentTitle.native.js +4 -0
  96. package/lib/module/useDocumentTitle.native.js.map +1 -0
  97. package/lib/module/useLinkBuilder.js +54 -0
  98. package/lib/module/useLinkBuilder.js.map +1 -0
  99. package/lib/module/useLinkProps.js +88 -0
  100. package/lib/module/useLinkProps.js.map +1 -0
  101. package/lib/module/useLinkTo.js +36 -0
  102. package/lib/module/useLinkTo.js.map +1 -0
  103. package/lib/module/useLinking.js +292 -0
  104. package/lib/module/useLinking.js.map +1 -0
  105. package/lib/module/useLinking.native.js +143 -0
  106. package/lib/module/useLinking.native.js.map +1 -0
  107. package/lib/module/useScrollToTop.js +87 -0
  108. package/lib/module/useScrollToTop.js.map +1 -0
  109. package/lib/module/useThenable.js +33 -0
  110. package/lib/module/useThenable.js.map +1 -0
  111. package/lib/typescript/src/Link.d.ts +24 -0
  112. package/lib/typescript/src/Link.d.ts.map +1 -0
  113. package/lib/typescript/src/LinkingContext.d.ts +8 -0
  114. package/lib/typescript/src/LinkingContext.d.ts.map +1 -0
  115. package/lib/typescript/src/NavigationContainer.d.ts +26 -0
  116. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -0
  117. package/lib/typescript/src/ServerContainer.d.ts +15 -0
  118. package/lib/typescript/src/ServerContainer.d.ts.map +1 -0
  119. package/lib/typescript/src/ServerContext.d.ts +10 -0
  120. package/lib/typescript/src/ServerContext.d.ts.map +1 -0
  121. package/lib/typescript/src/__mocks__/window.d.ts +19 -0
  122. package/lib/typescript/src/__mocks__/window.d.ts.map +1 -0
  123. package/lib/typescript/src/createMemoryHistory.d.ts +25 -0
  124. package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -0
  125. package/lib/typescript/src/extractPathFromURL.d.ts +2 -0
  126. package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -0
  127. package/lib/typescript/src/index.d.ts +15 -0
  128. package/lib/typescript/src/index.d.ts.map +1 -0
  129. package/lib/typescript/src/theming/DarkTheme.d.ts +4 -0
  130. package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -0
  131. package/lib/typescript/src/theming/DefaultTheme.d.ts +4 -0
  132. package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -0
  133. package/lib/typescript/src/theming/ThemeContext.d.ts +5 -0
  134. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -0
  135. package/lib/typescript/src/theming/ThemeProvider.d.ts +9 -0
  136. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -0
  137. package/lib/typescript/src/theming/useTheme.d.ts +2 -0
  138. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -0
  139. package/lib/typescript/src/types.d.ts +127 -0
  140. package/lib/typescript/src/types.d.ts.map +1 -0
  141. package/lib/typescript/src/useBackButton.d.ts +4 -0
  142. package/lib/typescript/src/useBackButton.d.ts.map +1 -0
  143. package/lib/typescript/src/useBackButton.native.d.ts +4 -0
  144. package/lib/typescript/src/useBackButton.native.d.ts.map +1 -0
  145. package/lib/typescript/src/useDocumentTitle.d.ts +8 -0
  146. package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -0
  147. package/lib/typescript/src/useDocumentTitle.native.d.ts +2 -0
  148. package/lib/typescript/src/useDocumentTitle.native.d.ts.map +1 -0
  149. package/lib/typescript/src/useLinkBuilder.d.ts +6 -0
  150. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -0
  151. package/lib/typescript/src/useLinkProps.d.ts +21 -0
  152. package/lib/typescript/src/useLinkProps.d.ts.map +1 -0
  153. package/lib/typescript/src/useLinkTo.d.ts +9 -0
  154. package/lib/typescript/src/useLinkTo.d.ts.map +1 -0
  155. package/lib/typescript/src/useLinking.d.ts +55 -0
  156. package/lib/typescript/src/useLinking.d.ts.map +1 -0
  157. package/lib/typescript/src/useLinking.native.d.ts +51 -0
  158. package/lib/typescript/src/useLinking.native.d.ts.map +1 -0
  159. package/lib/typescript/src/useScrollToTop.d.ts +27 -0
  160. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -0
  161. package/lib/typescript/src/useThenable.d.ts +2 -0
  162. package/lib/typescript/src/useThenable.d.ts.map +1 -0
  163. package/package.json +1 -0
  164. package/src/Link.tsx +53 -0
  165. package/src/LinkingContext.tsx +12 -0
  166. package/src/NavigationContainer.tsx +152 -0
  167. package/src/ServerContainer.tsx +56 -0
  168. package/src/ServerContext.tsx +14 -0
  169. package/src/__mocks__/window.tsx +77 -0
  170. package/src/createMemoryHistory.tsx +224 -0
  171. package/src/extractPathFromURL.tsx +29 -0
  172. package/src/index.tsx +14 -0
  173. package/src/theming/DarkTheme.tsx +15 -0
  174. package/src/theming/DefaultTheme.tsx +15 -0
  175. package/src/theming/ThemeContext.tsx +10 -0
  176. package/src/theming/ThemeProvider.tsx +15 -0
  177. package/src/theming/useTheme.tsx +9 -0
  178. package/src/types.tsx +145 -0
  179. package/src/useBackButton.native.tsx +33 -0
  180. package/src/useBackButton.tsx +11 -0
  181. package/src/useDocumentTitle.native.tsx +3 -0
  182. package/src/useDocumentTitle.tsx +41 -0
  183. package/src/useLinkBuilder.tsx +82 -0
  184. package/src/useLinkProps.tsx +126 -0
  185. package/src/useLinkTo.tsx +71 -0
  186. package/src/useLinking.native.tsx +215 -0
  187. package/src/useLinking.tsx +395 -0
  188. package/src/useScrollToTop.tsx +116 -0
  189. package/src/useThenable.tsx +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useDocumentTitle"],"sourceRoot":"../../src","sources":["useDocumentTitle.native.tsx"],"mappings":";;;;;;AAAe,SAASA,gBAAgBA,CAAA,EAAG;EACzC;AAAA","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLinkBuilder;
7
+ var _reactNavigation__core = require("@amazon-devices/react-navigation__core");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _LinkingContext = _interopRequireDefault(require("./LinkingContext"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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 && {}.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 getRootStateForNavigate = (navigation, state) => {
14
+ const parent = navigation.getParent();
15
+ if (parent) {
16
+ const parentState = parent.getState();
17
+ return getRootStateForNavigate(parent, {
18
+ index: 0,
19
+ routes: [{
20
+ ...parentState.routes[parentState.index],
21
+ state: state
22
+ }]
23
+ });
24
+ }
25
+ return state;
26
+ };
27
+
28
+ /**
29
+ * Build destination link for a navigate action.
30
+ * Useful for showing anchor tags on the web for buttons that perform navigation.
31
+ */
32
+ function useLinkBuilder() {
33
+ const navigation = React.useContext(_reactNavigation__core.NavigationHelpersContext);
34
+ const linking = React.useContext(_LinkingContext.default);
35
+ const buildLink = React.useCallback((name, params) => {
36
+ const {
37
+ options
38
+ } = linking;
39
+ if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {
40
+ return undefined;
41
+ }
42
+ const state = navigation ? getRootStateForNavigate(navigation, {
43
+ index: 0,
44
+ routes: [{
45
+ name,
46
+ params
47
+ }]
48
+ }) :
49
+ // If we couldn't find a navigation object in context, we're at root
50
+ // So we'll construct a basic state object to use
51
+ {
52
+ index: 0,
53
+ routes: [{
54
+ name,
55
+ params
56
+ }]
57
+ };
58
+ const path = options !== null && options !== void 0 && options.getPathFromState ? options.getPathFromState(state, options === null || options === void 0 ? void 0 : options.config) : (0, _reactNavigation__core.getPathFromState)(state, options === null || options === void 0 ? void 0 : options.config);
59
+ return path;
60
+ }, [linking, navigation]);
61
+ return buildLink;
62
+ }
63
+ //# sourceMappingURL=useLinkBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNavigation__core","require","React","_interopRequireWildcard","_LinkingContext","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getRootStateForNavigate","navigation","state","parent","getParent","parentState","getState","index","routes","useLinkBuilder","useContext","NavigationHelpersContext","linking","LinkingContext","buildLink","useCallback","name","params","options","enabled","undefined","path","getPathFromState","config"],"sourceRoot":"../../src","sources":["useLinkBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLinkProps;
7
+ var _reactNavigation__core = require("@amazon-devices/react-navigation__core");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _reactNative = require("react-native");
10
+ var _LinkingContext = _interopRequireDefault(require("./LinkingContext"));
11
+ var _useLinkTo = _interopRequireDefault(require("./useLinkTo"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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 && {}.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; }
15
+ const getStateFromParams = params => {
16
+ if (params !== null && params !== void 0 && params.state) {
17
+ return params.state;
18
+ }
19
+ if (params !== null && params !== void 0 && params.screen) {
20
+ return {
21
+ routes: [{
22
+ name: params.screen,
23
+ params: params.params,
24
+ // @ts-expect-error
25
+ state: params.screen ? getStateFromParams(params.params) : undefined
26
+ }]
27
+ };
28
+ }
29
+ return undefined;
30
+ };
31
+
32
+ /**
33
+ * Hook to get props for an anchor tag so it can work with in page navigation.
34
+ *
35
+ * @param props.to Absolute path to screen (e.g. `/feeds/hot`).
36
+ * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.
37
+ */
38
+ function useLinkProps({
39
+ to,
40
+ action
41
+ }) {
42
+ const root = React.useContext(_reactNavigation__core.NavigationContainerRefContext);
43
+ const navigation = React.useContext(_reactNavigation__core.NavigationHelpersContext);
44
+ const {
45
+ options
46
+ } = React.useContext(_LinkingContext.default);
47
+ const linkTo = (0, _useLinkTo.default)();
48
+ const onPress = e => {
49
+ var _e$currentTarget;
50
+ let shouldHandle = false;
51
+ if (_reactNative.Platform.OS !== 'web' || !e) {
52
+ shouldHandle = e ? !e.defaultPrevented : true;
53
+ } else if (!e.defaultPrevented &&
54
+ // onPress prevented default
55
+ // @ts-expect-error: these properties exist on web, but not in React Native
56
+ !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (
57
+ // ignore clicks with modifier keys
58
+ // @ts-expect-error: these properties exist on web, but not in React Native
59
+ e.button == null || e.button === 0) &&
60
+ // ignore everything but left clicks
61
+ // @ts-expect-error: these properties exist on web, but not in React Native
62
+ [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
63
+ ) {
64
+ e.preventDefault();
65
+ shouldHandle = true;
66
+ }
67
+ if (shouldHandle) {
68
+ if (action) {
69
+ if (navigation) {
70
+ navigation.dispatch(action);
71
+ } else if (root) {
72
+ root.dispatch(action);
73
+ } else {
74
+ throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
75
+ }
76
+ } else {
77
+ linkTo(to);
78
+ }
79
+ }
80
+ };
81
+ const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? _reactNavigation__core.getPathFromState;
82
+ const href = typeof to === 'string' ? to : getPathFromStateHelper({
83
+ routes: [{
84
+ name: to.screen,
85
+ // @ts-expect-error
86
+ params: to.params,
87
+ // @ts-expect-error
88
+ state: getStateFromParams(to.params)
89
+ }]
90
+ }, options === null || options === void 0 ? void 0 : options.config);
91
+ return {
92
+ href,
93
+ accessibilityRole: 'link',
94
+ onPress
95
+ };
96
+ }
97
+ //# sourceMappingURL=useLinkProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNavigation__core","require","React","_interopRequireWildcard","_reactNative","_LinkingContext","_interopRequireDefault","_useLinkTo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","useContext","NavigationContainerRefContext","navigation","NavigationHelpersContext","options","LinkingContext","linkTo","useLinkTo","onPress","_e$currentTarget","shouldHandle","Platform","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","getPathFromState","href","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLinkTo;
7
+ var _reactNavigation__core = require("@amazon-devices/react-navigation__core");
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _LinkingContext = _interopRequireDefault(require("./LinkingContext"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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 && {}.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
+ function useLinkTo() {
14
+ const navigation = React.useContext(_reactNavigation__core.NavigationContainerRefContext);
15
+ const linking = React.useContext(_LinkingContext.default);
16
+ const linkTo = React.useCallback(to => {
17
+ if (navigation === undefined) {
18
+ throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
19
+ }
20
+ if (typeof to !== 'string') {
21
+ // @ts-expect-error: This is fine
22
+ navigation.navigate(to.screen, to.params);
23
+ return;
24
+ }
25
+ if (!to.startsWith('/')) {
26
+ throw new Error(`The path must start with '/' (${to}).`);
27
+ }
28
+ const {
29
+ options
30
+ } = linking;
31
+ const state = options !== null && options !== void 0 && options.getStateFromPath ? options.getStateFromPath(to, options.config) : (0, _reactNavigation__core.getStateFromPath)(to, options === null || options === void 0 ? void 0 : options.config);
32
+ if (state) {
33
+ const action = (0, _reactNavigation__core.getActionFromState)(state, options === null || options === void 0 ? void 0 : options.config);
34
+ if (action !== undefined) {
35
+ navigation.dispatch(action);
36
+ } else {
37
+ navigation.reset(state);
38
+ }
39
+ } else {
40
+ throw new Error('Failed to parse the path to a navigation state.');
41
+ }
42
+ }, [linking, navigation]);
43
+ return linkTo;
44
+ }
45
+ //# sourceMappingURL=useLinkTo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNavigation__core","require","React","_interopRequireWildcard","_LinkingContext","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useLinkTo","navigation","useContext","NavigationContainerRefContext","linking","LinkingContext","linkTo","useCallback","to","undefined","Error","navigate","screen","params","startsWith","options","state","getStateFromPath","config","action","getActionFromState","dispatch","reset"],"sourceRoot":"../../src","sources":["useLinkTo.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLinking;
7
+ exports.series = void 0;
8
+ var _reactNavigation__core = require("@amazon-devices/react-navigation__core");
9
+ var _fastDeepEqual = _interopRequireDefault(require("fast-deep-equal"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _createMemoryHistory = _interopRequireDefault(require("./createMemoryHistory"));
12
+ var _ServerContext = _interopRequireDefault(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 && {}.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; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ /**
17
+ * Find the matching navigation state that changed between 2 navigation states
18
+ * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state
19
+ */
20
+ const findMatchingState = (a, b) => {
21
+ if (a === undefined || b === undefined || a.key !== b.key) {
22
+ return [undefined, undefined];
23
+ }
24
+
25
+ // Tab and drawer will have `history` property, but stack will have history in `routes`
26
+ const aHistoryLength = a.history ? a.history.length : a.routes.length;
27
+ const bHistoryLength = b.history ? b.history.length : b.routes.length;
28
+ const aRoute = a.routes[a.index];
29
+ const bRoute = b.routes[b.index];
30
+ const aChildState = aRoute.state;
31
+ const bChildState = bRoute.state;
32
+
33
+ // Stop here if this is the state object that changed:
34
+ // - history length is different
35
+ // - focused routes are different
36
+ // - one of them doesn't have child state
37
+ // - child state keys are different
38
+ if (aHistoryLength !== bHistoryLength || aRoute.key !== bRoute.key || aChildState === undefined || bChildState === undefined || aChildState.key !== bChildState.key) {
39
+ return [a, b];
40
+ }
41
+ return findMatchingState(aChildState, bChildState);
42
+ };
43
+
44
+ /**
45
+ * Run async function in series as it's called.
46
+ */
47
+ const series = cb => {
48
+ let queue = Promise.resolve();
49
+ const callback = () => {
50
+ queue = queue.then(cb);
51
+ };
52
+ return callback;
53
+ };
54
+ exports.series = series;
55
+ let linkingHandlers = [];
56
+ function useLinking(ref, {
57
+ independent,
58
+ enabled = true,
59
+ config,
60
+ getStateFromPath = _reactNavigation__core.getStateFromPath,
61
+ getPathFromState = _reactNavigation__core.getPathFromState,
62
+ getActionFromState = _reactNavigation__core.getActionFromState
63
+ }) {
64
+ React.useEffect(() => {
65
+ if (process.env.NODE_ENV === 'production') {
66
+ return undefined;
67
+ }
68
+ if (independent) {
69
+ return undefined;
70
+ }
71
+ if (enabled !== false && linkingHandlers.length) {
72
+ console.error(['Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:', "- You don't have multiple NavigationContainers in the app each with 'linking' enabled", '- Only a single instance of the root component is rendered'].join('\n').trim());
73
+ }
74
+ const handler = Symbol();
75
+ if (enabled !== false) {
76
+ linkingHandlers.push(handler);
77
+ }
78
+ return () => {
79
+ const index = linkingHandlers.indexOf(handler);
80
+ if (index > -1) {
81
+ linkingHandlers.splice(index, 1);
82
+ }
83
+ };
84
+ }, [enabled, independent]);
85
+ const [history] = React.useState(_createMemoryHistory.default);
86
+
87
+ // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners
88
+ // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`
89
+ // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect
90
+ const enabledRef = React.useRef(enabled);
91
+ const configRef = React.useRef(config);
92
+ const getStateFromPathRef = React.useRef(getStateFromPath);
93
+ const getPathFromStateRef = React.useRef(getPathFromState);
94
+ const getActionFromStateRef = React.useRef(getActionFromState);
95
+ React.useEffect(() => {
96
+ enabledRef.current = enabled;
97
+ configRef.current = config;
98
+ getStateFromPathRef.current = getStateFromPath;
99
+ getPathFromStateRef.current = getPathFromState;
100
+ getActionFromStateRef.current = getActionFromState;
101
+ });
102
+ const server = React.useContext(_ServerContext.default);
103
+ const getInitialState = React.useCallback(() => {
104
+ let value;
105
+ if (enabledRef.current) {
106
+ const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);
107
+ const path = location ? location.pathname + location.search : undefined;
108
+ if (path) {
109
+ value = getStateFromPathRef.current(path, configRef.current);
110
+ }
111
+ }
112
+ const thenable = {
113
+ then(onfulfilled) {
114
+ return Promise.resolve(onfulfilled ? onfulfilled(value) : value);
115
+ },
116
+ catch() {
117
+ return thenable;
118
+ }
119
+ };
120
+ return thenable;
121
+ // eslint-disable-next-line react-hooks/exhaustive-deps
122
+ }, []);
123
+ const previousIndexRef = React.useRef(undefined);
124
+ const previousStateRef = React.useRef(undefined);
125
+ const pendingPopStatePathRef = React.useRef(undefined);
126
+ React.useEffect(() => {
127
+ previousIndexRef.current = history.index;
128
+ return history.listen(() => {
129
+ const navigation = ref.current;
130
+ if (!navigation || !enabled) {
131
+ return;
132
+ }
133
+ const path = location.pathname + location.search;
134
+ const index = history.index;
135
+ const previousIndex = previousIndexRef.current ?? 0;
136
+ previousIndexRef.current = index;
137
+ pendingPopStatePathRef.current = path;
138
+
139
+ // When browser back/forward is clicked, we first need to check if state object for this index exists
140
+ // If it does we'll reset to that state object
141
+ // Otherwise, we'll handle it like a regular deep link
142
+ const record = history.get(index);
143
+ if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {
144
+ navigation.resetRoot(record.state);
145
+ return;
146
+ }
147
+ const state = getStateFromPathRef.current(path, configRef.current);
148
+
149
+ // We should only dispatch an action when going forward
150
+ // Otherwise the action will likely add items to history, which would mess things up
151
+ if (state) {
152
+ // Make sure that the routes in the state exist in the root navigator
153
+ // Otherwise there's an error in the linking configuration
154
+ const rootState = navigation.getRootState();
155
+ if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
156
+ 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.");
157
+ return;
158
+ }
159
+ if (index > previousIndex) {
160
+ const action = getActionFromStateRef.current(state, configRef.current);
161
+ if (action !== undefined) {
162
+ try {
163
+ navigation.dispatch(action);
164
+ } catch (e) {
165
+ // Ignore any errors from deep linking.
166
+ // This could happen in case of malformed links, navigation object not being initialized etc.
167
+ console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);
168
+ }
169
+ } else {
170
+ navigation.resetRoot(state);
171
+ }
172
+ } else {
173
+ navigation.resetRoot(state);
174
+ }
175
+ } else {
176
+ // if current path didn't return any state, we should revert to initial state
177
+ navigation.resetRoot(state);
178
+ }
179
+ });
180
+ }, [enabled, history, ref]);
181
+ React.useEffect(() => {
182
+ var _ref$current;
183
+ if (!enabled) {
184
+ return;
185
+ }
186
+ const getPathForRoute = (route, state) => {
187
+ // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
188
+ // This makes sure that we preserve the original URL for wildcard routes
189
+ if (route !== null && route !== void 0 && route.path) {
190
+ const stateForPath = getStateFromPathRef.current(route.path, configRef.current);
191
+ if (stateForPath) {
192
+ const focusedRoute = (0, _reactNavigation__core.findFocusedRoute)(stateForPath);
193
+ if (focusedRoute && focusedRoute.name === route.name && (0, _fastDeepEqual.default)(focusedRoute.params, route.params)) {
194
+ return route.path;
195
+ }
196
+ }
197
+ }
198
+ return getPathFromStateRef.current(state, configRef.current);
199
+ };
200
+ if (ref.current) {
201
+ // We need to record the current metadata on the first render if they aren't set
202
+ // This will allow the initial state to be in the history entry
203
+ const state = ref.current.getRootState();
204
+ if (state) {
205
+ const route = (0, _reactNavigation__core.findFocusedRoute)(state);
206
+ const path = getPathForRoute(route, state);
207
+ if (previousStateRef.current === undefined) {
208
+ previousStateRef.current = state;
209
+ }
210
+ history.replace({
211
+ path,
212
+ state
213
+ });
214
+ }
215
+ }
216
+ const onStateChange = async () => {
217
+ const navigation = ref.current;
218
+ if (!navigation || !enabled) {
219
+ return;
220
+ }
221
+ const previousState = previousStateRef.current;
222
+ const state = navigation.getRootState();
223
+
224
+ // root state may not available, for example when root navigators switch inside the container
225
+ if (!state) {
226
+ return;
227
+ }
228
+ const pendingPath = pendingPopStatePathRef.current;
229
+ const route = (0, _reactNavigation__core.findFocusedRoute)(state);
230
+ const path = getPathForRoute(route, state);
231
+ previousStateRef.current = state;
232
+ pendingPopStatePathRef.current = undefined;
233
+
234
+ // To detect the kind of state change, we need to:
235
+ // - Find the common focused navigation state in previous and current state
236
+ // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace
237
+ // - If no common focused navigation state found, it's a replace
238
+ const [previousFocusedState, focusedState] = findMatchingState(previousState, state);
239
+ if (previousFocusedState && focusedState &&
240
+ // We should only handle push/pop if path changed from what was in last `popstate`
241
+ // Otherwise it's likely a change triggered by `popstate`
242
+ path !== pendingPath) {
243
+ const historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length);
244
+ if (historyDelta > 0) {
245
+ // If history length is increased, we should pushState
246
+ // Note that path might not actually change here, for example, drawer open should pushState
247
+ history.push({
248
+ path,
249
+ state
250
+ });
251
+ } else if (historyDelta < 0) {
252
+ // If history length is decreased, i.e. entries were removed, we want to go back
253
+
254
+ const nextIndex = history.backIndex({
255
+ path
256
+ });
257
+ const currentIndex = history.index;
258
+ try {
259
+ if (nextIndex !== -1 && nextIndex < currentIndex) {
260
+ // An existing entry for this path exists and it's less than current index, go back to that
261
+ await history.go(nextIndex - currentIndex);
262
+ } else {
263
+ // We couldn't find an existing entry to go back to, so we'll go back by the delta
264
+ // This won't be correct if multiple routes were pushed in one go before
265
+ // Usually this shouldn't happen and this is a fallback for that
266
+ await history.go(historyDelta);
267
+ }
268
+
269
+ // Store the updated state as well as fix the path if incorrect
270
+ history.replace({
271
+ path,
272
+ state
273
+ });
274
+ } catch (e) {
275
+ // The navigation was interrupted
276
+ }
277
+ } else {
278
+ // If history length is unchanged, we want to replaceState
279
+ history.replace({
280
+ path,
281
+ state
282
+ });
283
+ }
284
+ } else {
285
+ // If no common navigation state was found, assume it's a replace
286
+ // This would happen if the user did a reset/conditionally changed navigators
287
+ history.replace({
288
+ path,
289
+ state
290
+ });
291
+ }
292
+ };
293
+
294
+ // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
295
+ // This could happen since `history.go(n)` is asynchronous
296
+ // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up
297
+ return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));
298
+ }, [enabled, history, ref]);
299
+ return {
300
+ getInitialState
301
+ };
302
+ }
303
+ //# sourceMappingURL=useLinking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNavigation__core","require","_fastDeepEqual","_interopRequireDefault","React","_interopRequireWildcard","_createMemoryHistory","_ServerContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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","independent","enabled","config","getStateFromPath","getStateFromPathDefault","getPathFromState","getPathFromStateDefault","getActionFromState","getActionFromStateDefault","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","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","navigation","previousIndex","record","resetRoot","rootState","getRootState","some","routeNames","includes","name","warn","action","dispatch","message","_ref$current","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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","ignoreList":[]}