@react-navigation/native 7.0.0-alpha.1 → 7.0.0-alpha.11

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 (206) hide show
  1. package/lib/commonjs/Link.js +13 -5
  2. package/lib/commonjs/Link.js.map +1 -1
  3. package/lib/commonjs/LinkingContext.js +7 -5
  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 +57 -19
  8. package/lib/commonjs/NavigationContainer.js.map +1 -1
  9. package/lib/commonjs/ServerContainer.js +3 -4
  10. package/lib/commonjs/ServerContainer.js.map +1 -1
  11. package/lib/commonjs/ServerContext.js +3 -4
  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 +4 -7
  20. package/lib/commonjs/createMemoryHistory.js.map +1 -1
  21. package/lib/commonjs/createStaticNavigation.js +6 -4
  22. package/lib/commonjs/createStaticNavigation.js.map +1 -1
  23. package/lib/commonjs/extractPathFromURL.js +3 -3
  24. package/lib/commonjs/extractPathFromURL.js.map +1 -1
  25. package/lib/commonjs/index.js +17 -17
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/theming/DarkTheme.js +1 -2
  28. package/lib/commonjs/theming/DarkTheme.js.map +1 -1
  29. package/lib/commonjs/theming/DefaultTheme.js +1 -2
  30. package/lib/commonjs/theming/DefaultTheme.js.map +1 -1
  31. package/lib/commonjs/theming/fonts.js +1 -2
  32. package/lib/commonjs/theming/fonts.js.map +1 -1
  33. package/lib/commonjs/types.js.map +1 -1
  34. package/lib/commonjs/useBackButton.js +3 -19
  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 +5 -5
  39. package/lib/commonjs/useDocumentTitle.js.map +1 -1
  40. package/lib/commonjs/useDocumentTitle.native.js.map +1 -1
  41. package/lib/commonjs/useLinkBuilder.js +80 -0
  42. package/lib/commonjs/useLinkBuilder.js.map +1 -0
  43. package/lib/commonjs/useLinkProps.js +20 -23
  44. package/lib/commonjs/useLinkProps.js.map +1 -1
  45. package/lib/commonjs/useLinkTo.js +30 -0
  46. package/lib/commonjs/useLinkTo.js.map +1 -0
  47. package/lib/commonjs/useLinking.js +34 -35
  48. package/lib/commonjs/useLinking.js.map +1 -1
  49. package/lib/commonjs/useLinking.native.js +30 -23
  50. package/lib/commonjs/useLinking.native.js.map +1 -1
  51. package/lib/commonjs/useLocale.js +23 -0
  52. package/lib/commonjs/useLocale.js.map +1 -0
  53. package/lib/commonjs/useScrollToTop.js +8 -6
  54. package/lib/commonjs/useScrollToTop.js.map +1 -1
  55. package/lib/commonjs/useThenable.js +3 -2
  56. package/lib/commonjs/useThenable.js.map +1 -1
  57. package/lib/commonjs/useUnhandledLinking.js +75 -0
  58. package/lib/commonjs/useUnhandledLinking.js.map +1 -0
  59. package/lib/module/Link.js +11 -3
  60. package/lib/module/Link.js.map +1 -1
  61. package/lib/module/LinkingContext.js +4 -1
  62. package/lib/module/LinkingContext.js.map +1 -1
  63. package/lib/module/LocaleDirContext.js +4 -0
  64. package/lib/module/LocaleDirContext.js.map +1 -0
  65. package/lib/module/NavigationContainer.js +53 -15
  66. package/lib/module/NavigationContainer.js.map +1 -1
  67. package/lib/module/ServerContainer.js.map +1 -1
  68. package/lib/module/ServerContext.js.map +1 -1
  69. package/lib/module/UnhandledLinkingContext.js +12 -0
  70. package/lib/module/UnhandledLinkingContext.js.map +1 -0
  71. package/lib/module/__stubs__/createStackNavigator.js +11 -0
  72. package/lib/module/__stubs__/createStackNavigator.js.map +1 -0
  73. package/lib/module/__stubs__/window.js +73 -0
  74. package/lib/module/__stubs__/window.js.map +1 -0
  75. package/lib/module/createMemoryHistory.js +4 -7
  76. package/lib/module/createMemoryHistory.js.map +1 -1
  77. package/lib/module/createStaticNavigation.js +4 -2
  78. package/lib/module/createStaticNavigation.js.map +1 -1
  79. package/lib/module/extractPathFromURL.js +3 -3
  80. package/lib/module/extractPathFromURL.js.map +1 -1
  81. package/lib/module/index.js +3 -3
  82. package/lib/module/index.js.map +1 -1
  83. package/lib/module/theming/DarkTheme.js.map +1 -1
  84. package/lib/module/theming/DefaultTheme.js.map +1 -1
  85. package/lib/module/theming/fonts.js.map +1 -1
  86. package/lib/module/types.js.map +1 -1
  87. package/lib/module/useBackButton.js +3 -17
  88. package/lib/module/useBackButton.js.map +1 -1
  89. package/lib/module/useBackButton.native.js +19 -0
  90. package/lib/module/useBackButton.native.js.map +1 -0
  91. package/lib/module/useDocumentTitle.js +3 -3
  92. package/lib/module/useDocumentTitle.js.map +1 -1
  93. package/lib/module/useDocumentTitle.native.js.map +1 -1
  94. package/lib/module/{useLinkTools.js → useLinkBuilder.js} +10 -10
  95. package/lib/module/useLinkBuilder.js.map +1 -0
  96. package/lib/module/useLinkProps.js +18 -21
  97. package/lib/module/useLinkProps.js.map +1 -1
  98. package/lib/module/useLinkTo.js +23 -0
  99. package/lib/module/useLinkTo.js.map +1 -0
  100. package/lib/module/useLinking.js +31 -34
  101. package/lib/module/useLinking.js.map +1 -1
  102. package/lib/module/useLinking.native.js +28 -21
  103. package/lib/module/useLinking.native.js.map +1 -1
  104. package/lib/module/useLocale.js +16 -0
  105. package/lib/module/useLocale.js.map +1 -0
  106. package/lib/module/useScrollToTop.js +7 -5
  107. package/lib/module/useScrollToTop.js.map +1 -1
  108. package/lib/module/useThenable.js +1 -0
  109. package/lib/module/useThenable.js.map +1 -1
  110. package/lib/module/useUnhandledLinking.js +69 -0
  111. package/lib/module/useUnhandledLinking.js.map +1 -0
  112. package/lib/typescript/src/Link.d.ts +3 -3
  113. package/lib/typescript/src/Link.d.ts.map +1 -1
  114. package/lib/typescript/src/LinkingContext.d.ts +1 -1
  115. package/lib/typescript/src/LinkingContext.d.ts.map +1 -1
  116. package/lib/typescript/src/LocaleDirContext.d.ts +4 -0
  117. package/lib/typescript/src/LocaleDirContext.d.ts.map +1 -0
  118. package/lib/typescript/src/NavigationContainer.d.ts +4 -4
  119. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  120. package/lib/typescript/src/ServerContainer.d.ts +1 -1
  121. package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
  122. package/lib/typescript/src/UnhandledLinkingContext.d.ts +6 -0
  123. package/lib/typescript/src/UnhandledLinkingContext.d.ts.map +1 -0
  124. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +32 -0
  125. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -0
  126. package/lib/typescript/src/{__mocks__ → __stubs__}/window.d.ts +1 -1
  127. package/lib/typescript/src/{__mocks__ → __stubs__}/window.d.ts.map +1 -1
  128. package/lib/typescript/src/createStaticNavigation.d.ts +2 -2
  129. package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
  130. package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -1
  131. package/lib/typescript/src/index.d.ts +3 -3
  132. package/lib/typescript/src/index.d.ts.map +1 -1
  133. package/lib/typescript/src/types.d.ts +37 -18
  134. package/lib/typescript/src/types.d.ts.map +1 -1
  135. package/lib/typescript/src/useBackButton.d.ts +2 -2
  136. package/lib/typescript/src/useBackButton.d.ts.map +1 -1
  137. package/lib/typescript/src/useBackButton.native.d.ts +4 -0
  138. package/lib/typescript/src/useBackButton.native.d.ts.map +1 -0
  139. package/lib/typescript/src/useLinkBuilder.d.ts +25 -0
  140. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -0
  141. package/lib/typescript/src/useLinkProps.d.ts +2 -2
  142. package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
  143. package/lib/typescript/src/useLinkTo.d.ts +6 -0
  144. package/lib/typescript/src/useLinkTo.d.ts.map +1 -0
  145. package/lib/typescript/src/useLinking.d.ts +8 -20
  146. package/lib/typescript/src/useLinking.d.ts.map +1 -1
  147. package/lib/typescript/src/useLinking.native.d.ts +4 -20
  148. package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
  149. package/lib/typescript/src/useLocale.d.ts +7 -0
  150. package/lib/typescript/src/useLocale.d.ts.map +1 -0
  151. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
  152. package/lib/typescript/src/useThenable.d.ts.map +1 -1
  153. package/lib/typescript/src/useUnhandledLinking.d.ts +7 -0
  154. package/lib/typescript/src/useUnhandledLinking.d.ts.map +1 -0
  155. package/package.json +15 -15
  156. package/src/Link.tsx +11 -2
  157. package/src/LinkingContext.tsx +8 -2
  158. package/src/LocaleDirContext.tsx +7 -0
  159. package/src/NavigationContainer.tsx +80 -24
  160. package/src/ServerContainer.tsx +1 -1
  161. package/src/UnhandledLinkingContext.tsx +18 -0
  162. package/src/{__mocks__ → __stubs__}/window.tsx +7 -5
  163. package/src/createStaticNavigation.tsx +11 -4
  164. package/src/extractPathFromURL.tsx +4 -1
  165. package/src/index.tsx +3 -3
  166. package/src/types.tsx +40 -18
  167. package/src/useBackButton.native.tsx +33 -0
  168. package/src/useBackButton.tsx +3 -25
  169. package/src/{useLinkTools.tsx → useLinkBuilder.tsx} +8 -8
  170. package/src/useLinkProps.tsx +20 -19
  171. package/src/useLinkTo.tsx +30 -0
  172. package/src/useLinking.native.tsx +26 -20
  173. package/src/useLinking.tsx +43 -41
  174. package/src/useLocale.tsx +18 -0
  175. package/src/useScrollToTop.tsx +13 -7
  176. package/src/useThenable.tsx +1 -0
  177. package/src/useUnhandledLinking.tsx +91 -0
  178. package/lib/commonjs/theming/ThemeContext.js +0 -14
  179. package/lib/commonjs/theming/ThemeContext.js.map +0 -1
  180. package/lib/commonjs/theming/ThemeProvider.js +0 -20
  181. package/lib/commonjs/theming/ThemeProvider.js.map +0 -1
  182. package/lib/commonjs/theming/useTheme.js +0 -15
  183. package/lib/commonjs/theming/useTheme.js.map +0 -1
  184. package/lib/commonjs/useLinkTools.js +0 -80
  185. package/lib/commonjs/useLinkTools.js.map +0 -1
  186. package/lib/module/theming/ThemeContext.js +0 -5
  187. package/lib/module/theming/ThemeContext.js.map +0 -1
  188. package/lib/module/theming/ThemeProvider.js +0 -12
  189. package/lib/module/theming/ThemeProvider.js.map +0 -1
  190. package/lib/module/theming/useTheme.js +0 -7
  191. package/lib/module/theming/useTheme.js.map +0 -1
  192. package/lib/module/useLinkTools.js.map +0 -1
  193. package/lib/typescript/src/__mocks__/createStackNavigator.d.ts +0 -56
  194. package/lib/typescript/src/__mocks__/createStackNavigator.d.ts.map +0 -1
  195. package/lib/typescript/src/theming/ThemeContext.d.ts +0 -4
  196. package/lib/typescript/src/theming/ThemeContext.d.ts.map +0 -1
  197. package/lib/typescript/src/theming/ThemeProvider.d.ts +0 -9
  198. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +0 -1
  199. package/lib/typescript/src/theming/useTheme.d.ts +0 -2
  200. package/lib/typescript/src/theming/useTheme.d.ts.map +0 -1
  201. package/lib/typescript/src/useLinkTools.d.ts +0 -33
  202. package/lib/typescript/src/useLinkTools.d.ts.map +0 -1
  203. package/src/theming/ThemeContext.tsx +0 -8
  204. package/src/theming/ThemeProvider.tsx +0 -15
  205. package/src/theming/useTheme.tsx +0 -9
  206. /package/src/{__mocks__ → __stubs__}/createStackNavigator.tsx +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["fonts","DefaultTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DefaultTheme.tsx"],"mappings":"AACA,SAASA,KAAK,QAAQ,SAAS;AAE/B,OAAO,MAAMC,YAAmB,GAAG;EACjCC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE;IACNC,OAAO,EAAE,kBAAkB;IAC3BC,UAAU,EAAE,oBAAoB;IAChCC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE,oBAAoB;IAC5BC,YAAY,EAAE;EAChB,CAAC;EACDT;AACF,CAAC"}
1
+ {"version":3,"names":["fonts","DefaultTheme","dark","colors","primary","background","card","text","border","notification"],"sourceRoot":"../../../src","sources":["theming/DefaultTheme.tsx"],"mappings":"AACA,SAASA,KAAK,QAAQ,SAAS;AAE/B,OAAO,MAAMC,YAAmB,GAAG;EACjCC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE;IACNC,OAAO,EAAE,kBAAkB;IAC3BC,UAAU,EAAE,oBAAoB;IAChCC,IAAI,EAAE,oBAAoB;IAC1BC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE,oBAAoB;IAC5BC,YAAY,EAAE;EAChB,CAAC;EACDT;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","WEB_FONT_STACK","fonts","select","web","regular","fontFamily","fontWeight","medium","bold","heavy","ios","default"],"sourceRoot":"../../../src","sources":["theming/fonts.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAIvC,MAAMC,cAAc,GAClB,uHAAuH;AAEzH,OAAO,MAAMC,KAAK,GAAGF,QAAQ,CAACG,MAAM,CAAC;EACnCC,GAAG,EAAE;IACHC,OAAO,EAAE;MACPC,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd;EACF,CAAC;EACDI,GAAG,EAAE;IACHN,OAAO,EAAE;MACPC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd;EACF,CAAC;EACDK,OAAO,EAAE;IACPP,OAAO,EAAE;MACPC,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,mBAAmB;MAC/BC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd;EACF;AACF,CAAC,CAAmD"}
1
+ {"version":3,"names":["Platform","WEB_FONT_STACK","fonts","select","web","regular","fontFamily","fontWeight","medium","bold","heavy","ios","default"],"sourceRoot":"../../../src","sources":["theming/fonts.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAIvC,MAAMC,cAAc,GAClB,uHAAuH;AAEzH,OAAO,MAAMC,KAAK,GAAGF,QAAQ,CAACG,MAAM,CAAC;EACnCC,GAAG,EAAE;IACHC,OAAO,EAAE;MACPC,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAEL,cAAc;MAC1BM,UAAU,EAAE;IACd;EACF,CAAC;EACDI,GAAG,EAAE;IACHN,OAAO,EAAE;MACPC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;IACd;EACF,CAAC;EACDK,OAAO,EAAE;IACPP,OAAO,EAAE;MACPC,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAE;MACNF,UAAU,EAAE,mBAAmB;MAC/BC,UAAU,EAAE;IACd,CAAC;IACDE,IAAI,EAAE;MACJH,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd,CAAC;IACDG,KAAK,EAAE;MACLJ,UAAU,EAAE,YAAY;MACxBC,UAAU,EAAE;IACd;EACF;AACF,CAAmD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":""}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":""}
@@ -1,19 +1,5 @@
1
- import * as React from 'react';
2
- import { BackHandler } from 'react-native';
3
- export function useBackButton(ref) {
4
- React.useEffect(() => {
5
- const subscription = BackHandler.addEventListener('hardwareBackPress', () => {
6
- const navigation = ref.current;
7
- if (navigation == null) {
8
- return false;
9
- }
10
- if (navigation.canGoBack()) {
11
- navigation.goBack();
12
- return true;
13
- }
14
- return false;
15
- });
16
- return () => subscription.remove();
17
- }, [ref]);
1
+ export function useBackButton(_) {
2
+ // No-op
3
+ // BackHandler is not available on web
18
4
  }
19
5
  //# sourceMappingURL=useBackButton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","BackHandler","useBackButton","ref","useEffect","subscription","addEventListener","navigation","current","canGoBack","goBack","remove"],"sourceRoot":"../../src","sources":["useBackButton.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,WAAW,QAAQ,cAAc;AAE1C,OAAO,SAASC,aAAa,CAC3BC,GAA2D,EAC3D;EACAH,KAAK,CAACI,SAAS,CAAC,MAAM;IACpB,MAAMC,YAAY,GAAGJ,WAAW,CAACK,gBAAgB,CAC/C,mBAAmB,EACnB,MAAM;MACJ,MAAMC,UAAU,GAAGJ,GAAG,CAACK,OAAO;MAE9B,IAAID,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,KAAK;MACd;MAEA,IAAIA,UAAU,CAACE,SAAS,EAAE,EAAE;QAC1BF,UAAU,CAACG,MAAM,EAAE;QAEnB,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CACF;IAED,OAAO,MAAML,YAAY,CAACM,MAAM,EAAE;EACpC,CAAC,EAAE,CAACR,GAAG,CAAC,CAAC;AACX"}
1
+ {"version":3,"names":["useBackButton","_"],"sourceRoot":"../../src","sources":["useBackButton.tsx"],"mappings":"AAKA,OAAO,SAASA,aAAaA,CAC3BC,CAAyD,EACzD;EACA;EACA;AAAA"}
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { BackHandler } from 'react-native';
3
+ export function useBackButton(ref) {
4
+ React.useEffect(() => {
5
+ const subscription = BackHandler.addEventListener('hardwareBackPress', () => {
6
+ const navigation = ref.current;
7
+ if (navigation == null) {
8
+ return false;
9
+ }
10
+ if (navigation.canGoBack()) {
11
+ navigation.goBack();
12
+ return true;
13
+ }
14
+ return false;
15
+ });
16
+ return () => subscription.remove();
17
+ }, [ref]);
18
+ }
19
+ //# sourceMappingURL=useBackButton.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","BackHandler","useBackButton","ref","useEffect","subscription","addEventListener","navigation","current","canGoBack","goBack","remove"],"sourceRoot":"../../src","sources":["useBackButton.native.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,WAAW,QAAQ,cAAc;AAE1C,OAAO,SAASC,aAAaA,CAC3BC,GAA2D,EAC3D;EACAH,KAAK,CAACI,SAAS,CAAC,MAAM;IACpB,MAAMC,YAAY,GAAGJ,WAAW,CAACK,gBAAgB,CAC/C,mBAAmB,EACnB,MAAM;MACJ,MAAMC,UAAU,GAAGJ,GAAG,CAACK,OAAO;MAE9B,IAAID,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,KAAK;MACd;MAEA,IAAIA,UAAU,CAACE,SAAS,CAAC,CAAC,EAAE;QAC1BF,UAAU,CAACG,MAAM,CAAC,CAAC;QAEnB,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CACF,CAAC;IAED,OAAO,MAAML,YAAY,CAACM,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACR,GAAG,CAAC,CAAC;AACX"}
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  export function useDocumentTitle(ref) {
6
6
  let {
7
7
  enabled = true,
8
- formatter = (options, route) => (options === null || options === void 0 ? void 0 : options.title) ?? (route === null || route === void 0 ? void 0 : route.name)
8
+ formatter = (options, route) => options?.title ?? route?.name
9
9
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10
10
  React.useEffect(() => {
11
11
  if (!enabled) {
@@ -16,8 +16,8 @@ export function useDocumentTitle(ref) {
16
16
  const title = formatter(navigation.getCurrentOptions(), navigation.getCurrentRoute());
17
17
  document.title = title;
18
18
  }
19
- return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('options', e => {
20
- const title = formatter(e.data.options, navigation === null || navigation === void 0 ? void 0 : navigation.getCurrentRoute());
19
+ return navigation?.addListener('options', e => {
20
+ const title = formatter(e.data.options, navigation?.getCurrentRoute());
21
21
  document.title = title;
22
22
  });
23
23
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useDocumentTitle","ref","enabled","formatter","options","route","title","name","useEffect","navigation","current","getCurrentOptions","getCurrentRoute","document","addListener","e","data"],"sourceRoot":"../../src","sources":["useDocumentTitle.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,gBAAgB,CAC9BC,GAA2D,EAK3D;EAAA,IAJA;IACEC,OAAO,GAAG,IAAI;IACdC,SAAS,GAAG,CAACC,OAAO,EAAEC,KAAK,KAAK,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,KAAK,MAAID,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,IAAI;EACzC,CAAC,uEAAG,CAAC,CAAC;EAE5BR,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,IAAI,CAACN,OAAO,EAAE;MACZ;IACF;IAEA,MAAMO,UAAU,GAAGR,GAAG,CAACS,OAAO;IAE9B,IAAID,UAAU,EAAE;MACd,MAAMH,KAAK,GAAGH,SAAS,CACrBM,UAAU,CAACE,iBAAiB,EAAE,EAC9BF,UAAU,CAACG,eAAe,EAAE,CAC7B;MAEDC,QAAQ,CAACP,KAAK,GAAGA,KAAK;IACxB;IAEA,OAAOG,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,WAAW,CAAC,SAAS,EAAGC,CAAC,IAAK;MAC/C,MAAMT,KAAK,GAAGH,SAAS,CAACY,CAAC,CAACC,IAAI,CAACZ,OAAO,EAAEK,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEG,eAAe,EAAE,CAAC;MAEtEC,QAAQ,CAACP,KAAK,GAAGA,KAAK;IACxB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
1
+ {"version":3,"names":["React","useDocumentTitle","ref","enabled","formatter","options","route","title","name","arguments","length","undefined","useEffect","navigation","current","getCurrentOptions","getCurrentRoute","document","addListener","e","data"],"sourceRoot":"../../src","sources":["useDocumentTitle.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,GAA2D,EAK3D;EAAA,IAJA;IACEC,OAAO,GAAG,IAAI;IACdC,SAAS,GAAGA,CAACC,OAAO,EAAEC,KAAK,KAAKD,OAAO,EAAEE,KAAK,IAAID,KAAK,EAAEE;EACrC,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE5BT,KAAK,CAACY,SAAS,CAAC,MAAM;IACpB,IAAI,CAACT,OAAO,EAAE;MACZ;IACF;IAEA,MAAMU,UAAU,GAAGX,GAAG,CAACY,OAAO;IAE9B,IAAID,UAAU,EAAE;MACd,MAAMN,KAAK,GAAGH,SAAS,CACrBS,UAAU,CAACE,iBAAiB,CAAC,CAAC,EAC9BF,UAAU,CAACG,eAAe,CAAC,CAC7B,CAAC;MAEDC,QAAQ,CAACV,KAAK,GAAGA,KAAK;IACxB;IAEA,OAAOM,UAAU,EAAEK,WAAW,CAAC,SAAS,EAAGC,CAAC,IAAK;MAC/C,MAAMZ,KAAK,GAAGH,SAAS,CAACe,CAAC,CAACC,IAAI,CAACf,OAAO,EAAEQ,UAAU,EAAEG,eAAe,CAAC,CAAC,CAAC;MAEtEC,QAAQ,CAACV,KAAK,GAAGA,KAAK;IACxB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"names":["useDocumentTitle"],"sourceRoot":"../../src","sources":["useDocumentTitle.native.tsx"],"mappings":"AAAA,OAAO,SAASA,gBAAgB,GAAG;EACjC;AAAA"}
1
+ {"version":3,"names":["useDocumentTitle"],"sourceRoot":"../../src","sources":["useDocumentTitle.native.tsx"],"mappings":"AAAA,OAAO,SAASA,gBAAgBA,CAAA,EAAG;EACjC;AAAA"}
@@ -17,17 +17,17 @@ const getRootStateForNavigate = (navigation, state) => {
17
17
  };
18
18
 
19
19
  /**
20
- * Build destination link for a navigate action.
21
- * Useful for showing anchor tags on the web for buttons that perform navigation.
20
+ * Helpers to build href or action based on the linking options.
21
+ * @returns `buildHref` to build an `href` for screen and `buildAction` to build an action from an `href`.
22
22
  */
23
- export function useLinkTools() {
23
+ export function useLinkBuilder() {
24
24
  const navigation = React.useContext(NavigationHelpersContext);
25
25
  const linking = React.useContext(LinkingContext);
26
26
  const buildHref = React.useCallback((name, params) => {
27
27
  const {
28
28
  options
29
29
  } = linking;
30
- if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {
30
+ if (options?.enabled === false) {
31
31
  return undefined;
32
32
  }
33
33
  const state = navigation ? getRootStateForNavigate(navigation, {
@@ -46,22 +46,22 @@ export function useLinkTools() {
46
46
  params
47
47
  }]
48
48
  };
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);
49
+ const path = options?.getPathFromState ? options.getPathFromState(state, options?.config) : getPathFromState(state, options?.config);
50
50
  return path;
51
51
  }, [linking, navigation]);
52
52
  const buildAction = React.useCallback(href => {
53
53
  if (!href.startsWith('/')) {
54
- throw new Error(`The path must start with '/' (${href}).`);
54
+ throw new Error(`The href must start with '/' (${href}).`);
55
55
  }
56
56
  const {
57
57
  options
58
58
  } = linking;
59
- const state = options !== null && options !== void 0 && options.getStateFromPath ? options.getStateFromPath(href, options.config) : getStateFromPath(href, options === null || options === void 0 ? void 0 : options.config);
59
+ const state = options?.getStateFromPath ? options.getStateFromPath(href, options.config) : getStateFromPath(href, options?.config);
60
60
  if (state) {
61
- const action = getActionFromState(state, options === null || options === void 0 ? void 0 : options.config);
61
+ const action = getActionFromState(state, options?.config);
62
62
  return action ?? CommonActions.reset(state);
63
63
  } else {
64
- throw new Error('Failed to parse the path to a navigation state.');
64
+ throw new Error('Failed to parse the href to a navigation state.');
65
65
  }
66
66
  }, [linking]);
67
67
  return {
@@ -69,4 +69,4 @@ export function useLinkTools() {
69
69
  buildAction
70
70
  };
71
71
  }
72
- //# sourceMappingURL=useLinkTools.js.map
72
+ //# sourceMappingURL=useLinkBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CommonActions","getActionFromState","getPathFromState","getStateFromPath","NavigationHelpersContext","React","LinkingContext","getRootStateForNavigate","navigation","state","parent","getParent","parentState","getState","index","routes","useLinkBuilder","useContext","linking","buildHref","useCallback","name","params","options","enabled","undefined","path","config","buildAction","href","startsWith","Error","action","reset"],"sourceRoot":"../../src","sources":["useLinkBuilder.tsx"],"mappings":"AAAA,SACEA,aAAa,EACbC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAEhBC,wBAAwB,QAGnB,wBAAwB;AAC/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,cAAc,QAAQ,kBAAkB;AAWjD,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,OAAO,SAASO,cAAcA,CAAA,EAAG;EAC/B,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,IAAIK,OAAO,EAAEC,OAAO,KAAK,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,EAAErB,gBAAgB,GAClCqB,OAAO,CAACrB,gBAAgB,CAACO,KAAK,EAAEc,OAAO,EAAEI,MAAM,CAAC,GAChDzB,gBAAgB,CAACO,KAAK,EAAEc,OAAO,EAAEI,MAAM,CAAC;IAE5C,OAAOD,IAAI;EACb,CAAC,EACD,CAACR,OAAO,EAAEV,UAAU,CACtB,CAAC;EAED,MAAMoB,WAAW,GAAGvB,KAAK,CAACe,WAAW,CAClCS,IAAY,IAAK;IAChB,IAAI,CAACA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;MACzB,MAAM,IAAIC,KAAK,CAAE,iCAAgCF,IAAK,IAAG,CAAC;IAC5D;IAEA,MAAM;MAAEN;IAAQ,CAAC,GAAGL,OAAO;IAE3B,MAAMT,KAAK,GAAGc,OAAO,EAAEpB,gBAAgB,GACnCoB,OAAO,CAACpB,gBAAgB,CAAC0B,IAAI,EAAEN,OAAO,CAACI,MAAM,CAAC,GAC9CxB,gBAAgB,CAAC0B,IAAI,EAAEN,OAAO,EAAEI,MAAM,CAAC;IAE3C,IAAIlB,KAAK,EAAE;MACT,MAAMuB,MAAM,GAAG/B,kBAAkB,CAACQ,KAAK,EAAEc,OAAO,EAAEI,MAAM,CAAC;MAEzD,OAAOK,MAAM,IAAIhC,aAAa,CAACiC,KAAK,CAACxB,KAAK,CAAC;IAC7C,CAAC,MAAM;MACL,MAAM,IAAIsB,KAAK,CAAC,iDAAiD,CAAC;IACpE;EACF,CAAC,EACD,CAACb,OAAO,CACV,CAAC;EAED,OAAO;IACLC,SAAS;IACTS;EACF,CAAC;AACH"}
@@ -3,15 +3,15 @@ import * as React from 'react';
3
3
  import { Platform } from 'react-native';
4
4
  import { LinkingContext } from './LinkingContext';
5
5
  const getStateFromParams = params => {
6
- if (params !== null && params !== void 0 && params.state) {
6
+ if (params?.state) {
7
7
  return params.state;
8
8
  }
9
- if (params !== null && params !== void 0 && params.screen) {
9
+ if (params?.screen) {
10
10
  return {
11
11
  routes: [{
12
12
  name: params.screen,
13
13
  params: params.params,
14
- // @ts-expect-error
14
+ // @ts-expect-error this is fine 🔥
15
15
  state: params.screen ? getStateFromParams(params.params) : undefined
16
16
  }]
17
17
  };
@@ -40,21 +40,18 @@ export function useLinkProps(_ref) {
40
40
  options
41
41
  } = React.useContext(LinkingContext);
42
42
  const onPress = e => {
43
- var _e$currentTarget;
44
- let shouldHandle = false;
45
- if (Platform.OS !== 'web' || !e) {
46
- shouldHandle = e ? !e.defaultPrevented : true;
47
- } else if (!e.defaultPrevented &&
48
- // onPress prevented default
49
43
  // @ts-expect-error: these properties exist on web, but not in React Native
50
- !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (
51
- // ignore clicks with modifier keys
44
+ const hasModifierKey = e.metaKey || e.altKey || e.ctrlKey || e.shiftKey; // ignore clicks with modifier keys
52
45
  // @ts-expect-error: these properties exist on web, but not in React Native
53
- e.button == null || e.button === 0) &&
54
- // ignore everything but left clicks
46
+ const isLeftClick = e.button == null || e.button === 0; // only handle left clicks
47
+ const isSelfTarget = [undefined, null, '', 'self'].includes(
55
48
  // @ts-expect-error: these properties exist on web, but not in React Native
56
- [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
57
- ) {
49
+ e.currentTarget?.target); // let browser handle "target=_blank" etc.
50
+
51
+ let shouldHandle = false;
52
+ if (Platform.OS !== 'web' || !e) {
53
+ shouldHandle = true;
54
+ } else if (!hasModifierKey && isLeftClick && isSelfTarget) {
58
55
  e.preventDefault();
59
56
  shouldHandle = true;
60
57
  }
@@ -68,22 +65,22 @@ export function useLinkProps(_ref) {
68
65
  throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
69
66
  }
70
67
  } else {
71
- // @ts-expect-error: This is already type-checked by the prop types
72
- navigation === null || navigation === void 0 ? void 0 : navigation.navigate(screen, params);
68
+ // @ts-expect-error This is already type-checked by the prop types
69
+ navigation?.navigate(screen, params);
73
70
  }
74
71
  }
75
72
  };
76
- const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? getPathFromState;
73
+ const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;
77
74
  return {
78
75
  href: href ?? (Platform.OS === 'web' && screen != null ? getPathFromStateHelper({
79
76
  routes: [{
80
77
  name: screen,
81
- // @ts-expect-error
78
+ // @ts-expect-error this is fine 🔥
82
79
  params: params,
83
- // @ts-expect-error
80
+ // @ts-expect-error this is fine 🔥
84
81
  state: getStateFromParams(params)
85
82
  }]
86
- }, options === null || options === void 0 ? void 0 : options.config) : undefined),
83
+ }, options?.config) : undefined),
87
84
  accessibilityRole: 'link',
88
85
  onPress
89
86
  };
@@ -1 +1 @@
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","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","navigate","getPathFromStateHelper","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","_ref","href","action","root","useContext","navigation","options","onPress","e","hasModifierKey","metaKey","altKey","ctrlKey","shiftKey","isLeftClick","button","isSelfTarget","includes","currentTarget","target","shouldHandle","OS","preventDefault","dispatch","Error","navigate","getPathFromStateHelper","config","accessibilityRole"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { NavigationContainerRefContext } from '@react-navigation/core';
2
+ import * as React from 'react';
3
+ import { useLinkBuilder } from './useLinkBuilder';
4
+
5
+ /**
6
+ * Helper to navigate to a screen using a href based on the linking options.
7
+ * @returns function that receives the href to navigate to.
8
+ */
9
+ export function useLinkTo() {
10
+ const navigation = React.useContext(NavigationContainerRefContext);
11
+ const {
12
+ buildAction
13
+ } = useLinkBuilder();
14
+ const linkTo = React.useCallback(href => {
15
+ if (navigation === undefined) {
16
+ throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
17
+ }
18
+ const action = buildAction(href);
19
+ navigation.dispatch(action);
20
+ }, [buildAction, navigation]);
21
+ return linkTo;
22
+ }
23
+ //# sourceMappingURL=useLinkTo.js.map
@@ -0,0 +1 @@
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,wBAAwB;AACtE,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,cAAc,QAAQ,kBAAkB;;AAEjD;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"}
@@ -34,33 +34,16 @@ const findMatchingState = (a, b) => {
34
34
  /**
35
35
  * Run async function in series as it's called.
36
36
  */
37
- const series = cb => {
38
- // Whether we're currently handling a callback
39
- let handling = false;
40
- let queue = [];
41
- const callback = async () => {
42
- try {
43
- if (handling) {
44
- // If we're currently handling a previous event, wait before handling this one
45
- // Add the callback to the beginning of the queue
46
- queue.unshift(callback);
47
- return;
48
- }
49
- handling = true;
50
- await cb();
51
- } finally {
52
- handling = false;
53
- if (queue.length) {
54
- // If we have queued items, handle the last one
55
- const last = queue.pop();
56
- last === null || last === void 0 ? void 0 : last();
57
- }
58
- }
37
+ export const series = cb => {
38
+ let queue = Promise.resolve();
39
+ const callback = () => {
40
+ // eslint-disable-next-line promise/no-callback-in-promise
41
+ queue = queue.then(cb);
59
42
  };
60
43
  return callback;
61
44
  };
62
- let linkingHandlers = [];
63
- export function useLinking(ref, _ref) {
45
+ const linkingHandlers = [];
46
+ export function useLinking(ref, _ref, onUnhandledLinking) {
64
47
  let {
65
48
  enabled = true,
66
49
  config,
@@ -107,15 +90,25 @@ export function useLinking(ref, _ref) {
107
90
  getPathFromStateRef.current = getPathFromState;
108
91
  getActionFromStateRef.current = getActionFromState;
109
92
  });
93
+ const validateRoutesNotExistInRootState = React.useCallback(state => {
94
+ const navigation = ref.current;
95
+ const rootState = navigation?.getRootState();
96
+ // Make sure that the routes in the state exist in the root navigator
97
+ // Otherwise there's an error in the linking configuration
98
+ return state?.routes.some(r => !rootState?.routeNames.includes(r.name));
99
+ }, [ref]);
110
100
  const server = React.useContext(ServerContext);
111
101
  const getInitialState = React.useCallback(() => {
112
102
  let value;
113
103
  if (enabledRef.current) {
114
- const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);
104
+ const location = server?.location ?? (typeof window !== 'undefined' ? window.location : undefined);
115
105
  const path = location ? location.pathname + location.search : undefined;
116
106
  if (path) {
117
107
  value = getStateFromPathRef.current(path, configRef.current);
118
108
  }
109
+
110
+ // If the link were handled, it gets cleared in NavigationContainer
111
+ onUnhandledLinking(path);
119
112
  }
120
113
  const thenable = {
121
114
  then(onfulfilled) {
@@ -138,6 +131,9 @@ export function useLinking(ref, _ref) {
138
131
  if (!navigation || !enabled) {
139
132
  return;
140
133
  }
134
+ const {
135
+ location
136
+ } = window;
141
137
  const path = location.pathname + location.search;
142
138
  const index = history.index;
143
139
  const previousIndex = previousIndexRef.current ?? 0;
@@ -148,7 +144,7 @@ export function useLinking(ref, _ref) {
148
144
  // If it does we'll reset to that state object
149
145
  // Otherwise, we'll handle it like a regular deep link
150
146
  const record = history.get(index);
151
- if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {
147
+ if (record?.path === path && record?.state) {
152
148
  navigation.resetRoot(record.state);
153
149
  return;
154
150
  }
@@ -157,11 +153,11 @@ export function useLinking(ref, _ref) {
157
153
  // We should only dispatch an action when going forward
158
154
  // Otherwise the action will likely add items to history, which would mess things up
159
155
  if (state) {
156
+ // If the link were handled, it gets cleared in NavigationContainer
157
+ onUnhandledLinking(path);
160
158
  // Make sure that the routes in the state exist in the root navigator
161
159
  // Otherwise there's an error in the linking configuration
162
- const rootState = navigation.getRootState();
163
- if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
164
- 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.");
160
+ if (validateRoutesNotExistInRootState(state)) {
165
161
  return;
166
162
  }
167
163
  if (index > previousIndex) {
@@ -185,16 +181,15 @@ export function useLinking(ref, _ref) {
185
181
  navigation.resetRoot(state);
186
182
  }
187
183
  });
188
- }, [enabled, history, ref]);
184
+ }, [enabled, history, onUnhandledLinking, ref, validateRoutesNotExistInRootState]);
189
185
  React.useEffect(() => {
190
- var _ref$current;
191
186
  if (!enabled) {
192
187
  return;
193
188
  }
194
189
  const getPathForRoute = (route, state) => {
195
190
  // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match
196
191
  // This makes sure that we preserve the original URL for wildcard routes
197
- if (route !== null && route !== void 0 && route.path) {
192
+ if (route?.path) {
198
193
  const stateForPath = getStateFromPathRef.current(route.path, configRef.current);
199
194
  if (stateForPath) {
200
195
  const focusedRoute = findFocusedRoute(stateForPath);
@@ -264,7 +259,9 @@ export function useLinking(ref, _ref) {
264
259
  });
265
260
  const currentIndex = history.index;
266
261
  try {
267
- if (nextIndex !== -1 && nextIndex < currentIndex) {
262
+ if (nextIndex !== -1 && nextIndex < currentIndex &&
263
+ // We should only go back if the entry exists and it's less than current index
264
+ history.get(nextIndex - currentIndex)) {
268
265
  // An existing entry for this path exists and it's less than current index, go back to that
269
266
  await history.go(nextIndex - currentIndex);
270
267
  } else {
@@ -302,7 +299,7 @@ export function useLinking(ref, _ref) {
302
299
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
303
300
  // This could happen since `history.go(n)` is asynchronous
304
301
  // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up
305
- return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));
302
+ return ref.current?.addListener('state', series(onStateChange));
306
303
  }, [enabled, history, ref]);
307
304
  return {
308
305
  getInitialState
@@ -1 +1 @@
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","handling","queue","callback","unshift","last","pop","linkingHandlers","useLinking","ref","enabled","config","independent","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","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","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":["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","_ref","onUnhandledLinking","enabled","config","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","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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"}
@@ -2,19 +2,19 @@ import { getActionFromState as getActionFromStateDefault, getStateFromPath as ge
2
2
  import * as React from 'react';
3
3
  import { Linking, Platform } from 'react-native';
4
4
  import { extractPathFromURL } from './extractPathFromURL';
5
- let linkingHandlers = [];
6
- export function useLinking(ref, _ref) {
5
+ const linkingHandlers = [];
6
+ export function useLinking(ref, _ref, onUnhandledLinking) {
7
7
  let {
8
8
  enabled = true,
9
9
  prefixes,
10
10
  filter,
11
11
  config,
12
- getInitialURL = () => Promise.race([Linking.getInitialURL(), new Promise(resolve =>
13
- // Timeout in 150ms if `getInitialState` doesn't resolve
14
- // Workaround for https://github.com/facebook/react-native/issues/25675
15
- setTimeout(resolve, 150))]),
12
+ getInitialURL = () => Promise.race([Linking.getInitialURL(), new Promise(resolve => {
13
+ // Timeout in 150ms if `getInitialState` doesn't resolve
14
+ // Workaround for https://github.com/facebook/react-native/issues/25675
15
+ setTimeout(resolve, 150);
16
+ })]),
16
17
  subscribe = listener => {
17
- var _Linking$removeEventL;
18
18
  const callback = _ref2 => {
19
19
  let {
20
20
  url
@@ -25,13 +25,13 @@ export function useLinking(ref, _ref) {
25
25
 
26
26
  // Storing this in a local variable stops Jest from complaining about import after teardown
27
27
  // @ts-expect-error: removeEventListener is not present in newer RN versions
28
- const removeEventListener = (_Linking$removeEventL = Linking.removeEventListener) === null || _Linking$removeEventL === void 0 ? void 0 : _Linking$removeEventL.bind(Linking);
28
+ const removeEventListener = Linking.removeEventListener?.bind(Linking);
29
29
  return () => {
30
30
  // https://github.com/facebook/react-native/commit/6d1aca806cee86ad76de771ed3a1cc62982ebcd7
31
- if (subscription !== null && subscription !== void 0 && subscription.remove) {
31
+ if (subscription?.remove) {
32
32
  subscription.remove();
33
33
  } else {
34
- removeEventListener === null || removeEventListener === void 0 ? void 0 : removeEventListener('url', callback);
34
+ removeEventListener?.('url', callback);
35
35
  }
36
36
  };
37
37
  },
@@ -91,11 +91,19 @@ export function useLinking(ref, _ref) {
91
91
  let state;
92
92
  if (enabledRef.current) {
93
93
  const url = getInitialURLRef.current();
94
- if (url != null && typeof url !== 'string') {
95
- return url.then(url => {
96
- const state = getStateFromURL(url);
97
- return state;
98
- });
94
+ if (url != null) {
95
+ if (typeof url !== 'string') {
96
+ return url.then(url => {
97
+ const state = getStateFromURL(url);
98
+ if (typeof url === 'string') {
99
+ // If the link were handled, it gets cleared in NavigationContainer
100
+ onUnhandledLinking(extractPathFromURL(prefixes, url));
101
+ }
102
+ return state;
103
+ });
104
+ } else {
105
+ onUnhandledLinking(extractPathFromURL(prefixes, url));
106
+ }
99
107
  }
100
108
  state = getStateFromURL(url);
101
109
  }
@@ -108,7 +116,7 @@ export function useLinking(ref, _ref) {
108
116
  }
109
117
  };
110
118
  return thenable;
111
- }, [getStateFromURL]);
119
+ }, [getStateFromURL, onUnhandledLinking, prefixes]);
112
120
  React.useEffect(() => {
113
121
  const listener = url => {
114
122
  if (!enabled) {
@@ -117,11 +125,10 @@ export function useLinking(ref, _ref) {
117
125
  const navigation = ref.current;
118
126
  const state = navigation ? getStateFromURL(url) : undefined;
119
127
  if (navigation && state) {
120
- // Make sure that the routes in the state exist in the root navigator
121
- // Otherwise there's an error in the linking configuration
128
+ // If the link were handled, it gets cleared in NavigationContainer
129
+ onUnhandledLinking(extractPathFromURL(prefixes, url));
122
130
  const rootState = navigation.getRootState();
123
- if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {
124
- 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.");
131
+ if (state.routes.some(r => !rootState?.routeNames.includes(r.name))) {
125
132
  return;
126
133
  }
127
134
  const action = getActionFromStateRef.current(state, configRef.current);
@@ -139,7 +146,7 @@ export function useLinking(ref, _ref) {
139
146
  }
140
147
  };
141
148
  return subscribe(listener);
142
- }, [enabled, getStateFromURL, ref, subscribe]);
149
+ }, [enabled, getStateFromURL, onUnhandledLinking, prefixes, ref, subscribe]);
143
150
  return {
144
151
  getInitialState
145
152
  };