@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.
- package/lib/commonjs/Link.js +16 -9
- package/lib/commonjs/Link.js.map +1 -1
- package/lib/commonjs/LinkingContext.js +8 -7
- package/lib/commonjs/LinkingContext.js.map +1 -1
- package/lib/commonjs/LocaleDirContext.js +12 -0
- package/lib/commonjs/LocaleDirContext.js.map +1 -0
- package/lib/commonjs/NavigationContainer.js +68 -32
- package/lib/commonjs/NavigationContainer.js.map +1 -1
- package/lib/commonjs/ServerContainer.js +6 -8
- package/lib/commonjs/ServerContainer.js.map +1 -1
- package/lib/commonjs/ServerContext.js +4 -6
- package/lib/commonjs/ServerContext.js.map +1 -1
- package/lib/commonjs/UnhandledLinkingContext.js +20 -0
- package/lib/commonjs/UnhandledLinkingContext.js.map +1 -0
- package/lib/commonjs/__stubs__/createStackNavigator.js +19 -0
- package/lib/commonjs/__stubs__/createStackNavigator.js.map +1 -0
- package/lib/commonjs/__stubs__/window.js +79 -0
- package/lib/commonjs/__stubs__/window.js.map +1 -0
- package/lib/commonjs/createMemoryHistory.js +5 -8
- package/lib/commonjs/createMemoryHistory.js.map +1 -1
- package/lib/commonjs/createStaticNavigation.js +8 -8
- package/lib/commonjs/createStaticNavigation.js.map +1 -1
- package/lib/commonjs/extractPathFromURL.js +4 -4
- package/lib/commonjs/extractPathFromURL.js.map +1 -1
- package/lib/commonjs/index.js +33 -34
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/theming/DarkTheme.js +5 -5
- package/lib/commonjs/theming/DarkTheme.js.map +1 -1
- package/lib/commonjs/theming/DefaultTheme.js +5 -5
- package/lib/commonjs/theming/DefaultTheme.js.map +1 -1
- package/lib/commonjs/theming/fonts.js +65 -0
- package/lib/commonjs/theming/fonts.js.map +1 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useBackButton.js +4 -20
- package/lib/commonjs/useBackButton.js.map +1 -1
- package/lib/commonjs/useBackButton.native.js +27 -0
- package/lib/commonjs/useBackButton.native.js.map +1 -0
- package/lib/commonjs/useDocumentTitle.js +6 -6
- package/lib/commonjs/useDocumentTitle.js.map +1 -1
- package/lib/commonjs/useDocumentTitle.native.js +1 -1
- package/lib/commonjs/useDocumentTitle.native.js.map +1 -1
- package/lib/commonjs/useLinkBuilder.js +80 -0
- package/lib/commonjs/useLinkBuilder.js.map +1 -0
- package/lib/commonjs/useLinkProps.js +23 -27
- package/lib/commonjs/useLinkProps.js.map +1 -1
- package/lib/commonjs/useLinkTo.js +30 -0
- package/lib/commonjs/useLinkTo.js.map +1 -0
- package/lib/commonjs/useLinking.js +39 -40
- package/lib/commonjs/useLinking.js.map +1 -1
- package/lib/commonjs/useLinking.native.js +33 -27
- package/lib/commonjs/useLinking.native.js.map +1 -1
- package/lib/commonjs/useLocale.js +23 -0
- package/lib/commonjs/useLocale.js.map +1 -0
- package/lib/commonjs/useScrollToTop.js +9 -7
- package/lib/commonjs/useScrollToTop.js.map +1 -1
- package/lib/commonjs/useThenable.js +4 -3
- package/lib/commonjs/useThenable.js.map +1 -1
- package/lib/commonjs/useUnhandledLinking.js +75 -0
- package/lib/commonjs/useUnhandledLinking.js.map +1 -0
- package/lib/module/Link.js +13 -5
- package/lib/module/Link.js.map +1 -1
- package/lib/module/LinkingContext.js +5 -3
- package/lib/module/LinkingContext.js.map +1 -1
- package/lib/module/LocaleDirContext.js +4 -0
- package/lib/module/LocaleDirContext.js.map +1 -0
- package/lib/module/NavigationContainer.js +60 -23
- package/lib/module/NavigationContainer.js.map +1 -1
- package/lib/module/ServerContainer.js +2 -2
- package/lib/module/ServerContainer.js.map +1 -1
- package/lib/module/ServerContext.js +1 -2
- package/lib/module/ServerContext.js.map +1 -1
- package/lib/module/UnhandledLinkingContext.js +12 -0
- package/lib/module/UnhandledLinkingContext.js.map +1 -0
- package/lib/module/__stubs__/createStackNavigator.js +11 -0
- package/lib/module/__stubs__/createStackNavigator.js.map +1 -0
- package/lib/module/__stubs__/window.js +73 -0
- package/lib/module/__stubs__/window.js.map +1 -0
- package/lib/module/createMemoryHistory.js +5 -8
- package/lib/module/createMemoryHistory.js.map +1 -1
- package/lib/module/createStaticNavigation.js +5 -4
- package/lib/module/createStaticNavigation.js.map +1 -1
- package/lib/module/extractPathFromURL.js +4 -4
- package/lib/module/extractPathFromURL.js.map +1 -1
- package/lib/module/index.js +12 -12
- package/lib/module/index.js.map +1 -1
- package/lib/module/theming/DarkTheme.js +4 -3
- package/lib/module/theming/DarkTheme.js.map +1 -1
- package/lib/module/theming/DefaultTheme.js +4 -3
- package/lib/module/theming/DefaultTheme.js.map +1 -1
- package/lib/module/theming/fonts.js +59 -0
- package/lib/module/theming/fonts.js.map +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useBackButton.js +3 -17
- package/lib/module/useBackButton.js.map +1 -1
- package/lib/module/useBackButton.native.js +19 -0
- package/lib/module/useBackButton.native.js.map +1 -0
- package/lib/module/useDocumentTitle.js +4 -4
- package/lib/module/useDocumentTitle.js.map +1 -1
- package/lib/module/useDocumentTitle.native.js +1 -1
- package/lib/module/useDocumentTitle.native.js.map +1 -1
- package/lib/module/{useLinkTools.js → useLinkBuilder.js} +11 -11
- package/lib/module/useLinkBuilder.js.map +1 -0
- package/lib/module/useLinkProps.js +20 -23
- package/lib/module/useLinkProps.js.map +1 -1
- package/lib/module/useLinkTo.js +23 -0
- package/lib/module/useLinkTo.js.map +1 -0
- package/lib/module/useLinking.js +33 -36
- package/lib/module/useLinking.js.map +1 -1
- package/lib/module/useLinking.native.js +29 -22
- package/lib/module/useLinking.native.js.map +1 -1
- package/lib/module/useLocale.js +16 -0
- package/lib/module/useLocale.js.map +1 -0
- package/lib/module/useScrollToTop.js +8 -6
- package/lib/module/useScrollToTop.js.map +1 -1
- package/lib/module/useThenable.js +2 -1
- package/lib/module/useThenable.js.map +1 -1
- package/lib/module/useUnhandledLinking.js +69 -0
- package/lib/module/useUnhandledLinking.js.map +1 -0
- package/lib/typescript/src/Link.d.ts +3 -3
- package/lib/typescript/src/Link.d.ts.map +1 -1
- package/lib/typescript/src/LinkingContext.d.ts +2 -3
- package/lib/typescript/src/LinkingContext.d.ts.map +1 -1
- package/lib/typescript/src/LocaleDirContext.d.ts +4 -0
- package/lib/typescript/src/LocaleDirContext.d.ts.map +1 -0
- package/lib/typescript/src/NavigationContainer.d.ts +6 -6
- package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/ServerContainer.d.ts +2 -3
- package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
- package/lib/typescript/src/ServerContext.d.ts +1 -2
- package/lib/typescript/src/ServerContext.d.ts.map +1 -1
- package/lib/typescript/src/UnhandledLinkingContext.d.ts +6 -0
- package/lib/typescript/src/UnhandledLinkingContext.d.ts.map +1 -0
- package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +32 -0
- package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -0
- package/lib/typescript/src/{__mocks__ → __stubs__}/window.d.ts +2 -3
- package/lib/typescript/src/__stubs__/window.d.ts.map +1 -0
- package/lib/typescript/src/createMemoryHistory.d.ts +1 -1
- package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -1
- package/lib/typescript/src/createStaticNavigation.d.ts +3 -3
- package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/extractPathFromURL.d.ts +1 -1
- package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +12 -12
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theming/DarkTheme.d.ts +1 -2
- package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -1
- package/lib/typescript/src/theming/DefaultTheme.d.ts +1 -2
- package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -1
- package/lib/typescript/src/theming/fonts.d.ts +53 -0
- package/lib/typescript/src/theming/fonts.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +41 -11
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useBackButton.d.ts +2 -2
- package/lib/typescript/src/useBackButton.d.ts.map +1 -1
- package/lib/typescript/src/useBackButton.native.d.ts +4 -0
- package/lib/typescript/src/useBackButton.native.d.ts.map +1 -0
- package/lib/typescript/src/useDocumentTitle.d.ts +1 -1
- package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -1
- package/lib/typescript/src/useDocumentTitle.native.d.ts +1 -1
- package/lib/typescript/src/useDocumentTitle.native.d.ts.map +1 -1
- package/lib/typescript/src/useLinkBuilder.d.ts +25 -0
- package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -0
- package/lib/typescript/src/useLinkProps.d.ts +3 -3
- package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
- package/lib/typescript/src/useLinkTo.d.ts +6 -0
- package/lib/typescript/src/useLinkTo.d.ts.map +1 -0
- package/lib/typescript/src/useLinking.d.ts +8 -20
- package/lib/typescript/src/useLinking.d.ts.map +1 -1
- package/lib/typescript/src/useLinking.native.d.ts +4 -20
- package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
- package/lib/typescript/src/useLocale.d.ts +7 -0
- package/lib/typescript/src/useLocale.d.ts.map +1 -0
- package/lib/typescript/src/useScrollToTop.d.ts +1 -1
- package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
- package/lib/typescript/src/useThenable.d.ts +1 -1
- package/lib/typescript/src/useThenable.d.ts.map +1 -1
- package/lib/typescript/src/useUnhandledLinking.d.ts +7 -0
- package/lib/typescript/src/useUnhandledLinking.d.ts.map +1 -0
- package/package.json +15 -15
- package/src/Link.tsx +12 -3
- package/src/LinkingContext.tsx +9 -5
- package/src/LocaleDirContext.tsx +7 -0
- package/src/NavigationContainer.tsx +90 -36
- package/src/ServerContainer.tsx +2 -2
- package/src/ServerContext.tsx +1 -3
- package/src/UnhandledLinkingContext.tsx +18 -0
- package/src/{__mocks__ → __stubs__}/createStackNavigator.tsx +1 -3
- package/src/{__mocks__ → __stubs__}/window.tsx +8 -8
- package/src/createMemoryHistory.tsx +1 -1
- package/src/createStaticNavigation.tsx +8 -8
- package/src/extractPathFromURL.tsx +5 -2
- package/src/index.tsx +12 -12
- package/src/theming/DarkTheme.tsx +3 -3
- package/src/theming/DefaultTheme.tsx +3 -3
- package/src/theming/fonts.tsx +63 -0
- package/src/types.tsx +55 -11
- package/src/useBackButton.native.tsx +33 -0
- package/src/useBackButton.tsx +4 -26
- package/src/useDocumentTitle.native.tsx +1 -1
- package/src/useDocumentTitle.tsx +1 -1
- package/src/{useLinkTools.tsx → useLinkBuilder.tsx} +9 -9
- package/src/useLinkProps.tsx +27 -23
- package/src/useLinkTo.tsx +30 -0
- package/src/useLinking.native.tsx +28 -22
- package/src/useLinking.tsx +46 -44
- package/src/useLocale.tsx +18 -0
- package/src/useScrollToTop.tsx +14 -10
- package/src/useThenable.tsx +2 -1
- package/src/useUnhandledLinking.tsx +91 -0
- package/lib/commonjs/theming/ThemeContext.js +0 -16
- package/lib/commonjs/theming/ThemeContext.js.map +0 -1
- package/lib/commonjs/theming/ThemeProvider.js +0 -21
- package/lib/commonjs/theming/ThemeProvider.js.map +0 -1
- package/lib/commonjs/theming/useTheme.js +0 -16
- package/lib/commonjs/theming/useTheme.js.map +0 -1
- package/lib/commonjs/useLinkTools.js +0 -81
- package/lib/commonjs/useLinkTools.js.map +0 -1
- package/lib/module/theming/ThemeContext.js +0 -6
- package/lib/module/theming/ThemeContext.js.map +0 -1
- package/lib/module/theming/ThemeProvider.js +0 -12
- package/lib/module/theming/ThemeProvider.js.map +0 -1
- package/lib/module/theming/useTheme.js +0 -7
- package/lib/module/theming/useTheme.js.map +0 -1
- package/lib/module/useLinkTools.js.map +0 -1
- package/lib/typescript/src/__mocks__/createStackNavigator.d.ts +0 -57
- package/lib/typescript/src/__mocks__/createStackNavigator.d.ts.map +0 -1
- package/lib/typescript/src/__mocks__/window.d.ts.map +0 -1
- package/lib/typescript/src/theming/ThemeContext.d.ts +0 -5
- package/lib/typescript/src/theming/ThemeContext.d.ts.map +0 -1
- package/lib/typescript/src/theming/ThemeProvider.d.ts +0 -9
- package/lib/typescript/src/theming/ThemeProvider.d.ts.map +0 -1
- package/lib/typescript/src/theming/useTheme.d.ts +0 -2
- package/lib/typescript/src/theming/useTheme.d.ts.map +0 -1
- package/lib/typescript/src/useLinkTools.d.ts +0 -33
- package/lib/typescript/src/useLinkTools.d.ts.map +0 -1
- package/src/theming/ThemeContext.tsx +0 -10
- package/src/theming/ThemeProvider.tsx +0 -15
- package/src/theming/useTheme.tsx +0 -9
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { getPathFromState, NavigationContainerRefContext, NavigationHelpersContext } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
|
-
import LinkingContext from './LinkingContext';
|
|
4
|
+
import { LinkingContext } from './LinkingContext';
|
|
5
5
|
const getStateFromParams = params => {
|
|
6
|
-
if (params
|
|
6
|
+
if (params?.state) {
|
|
7
7
|
return params.state;
|
|
8
8
|
}
|
|
9
|
-
if (params
|
|
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
|
};
|
|
@@ -27,7 +27,7 @@ const getStateFromParams = params => {
|
|
|
27
27
|
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
28
28
|
* @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.
|
|
29
29
|
*/
|
|
30
|
-
export
|
|
30
|
+
export function useLinkProps(_ref) {
|
|
31
31
|
let {
|
|
32
32
|
screen,
|
|
33
33
|
params,
|
|
@@ -40,21 +40,18 @@ export default 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 default 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
|
|
72
|
-
navigation
|
|
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 =
|
|
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
|
|
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","
|
|
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":"AAAA,SACEA,gBAAgB,EAEhBC,6BAA6B,EAC7BC,wBAAwB,QAGnB,wBAAwB;AAE/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAAqCC,QAAQ,QAAQ,cAAc;AAEnE,SAASC,cAAc,QAAQ,kBAAkB;AAoBjD,MAAMC,kBAAkB,GACtBC,MAAwD,IACQ;EAChE,IAAIA,MAAM,EAAEC,KAAK,EAAE;IACjB,OAAOD,MAAM,CAACC,KAAK;EACrB;EAEA,IAAID,MAAM,EAAEE,MAAM,EAAE;IAClB,OAAO;MACLC,MAAM,EAAE,CACN;QACEC,IAAI,EAAEJ,MAAM,CAACE,MAAM;QACnBF,MAAM,EAAEA,MAAM,CAACA,MAAM;QACrB;QACAC,KAAK,EAAED,MAAM,CAACE,MAAM,GAChBH,kBAAkB,CAChBC,MAAM,CAACA,MAGT,CAAC,GACDK;MACN,CAAC;IAEL,CAAC;EACH;EAEA,OAAOA,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAAC,IAAA,EAKP;EAAA,IALyD;IAC5EL,MAAM;IACNF,MAAM;IACNQ,IAAI;IACJC;EACgB,CAAC,GAAAF,IAAA;EACjB,MAAMG,IAAI,GAAGd,KAAK,CAACe,UAAU,CAACjB,6BAA6B,CAAC;EAC5D,MAAMkB,UAAU,GAAGhB,KAAK,CAACe,UAAU,CAAChB,wBAAwB,CAAC;EAC7D,MAAM;IAAEkB;EAAQ,CAAC,GAAGjB,KAAK,CAACe,UAAU,CAACb,cAAc,CAAC;EAEpD,MAAMgB,OAAO,GACXC,CAA2E,IACxE;IACH;IACA,MAAMC,cAAc,GAAGD,CAAC,CAACE,OAAO,IAAIF,CAAC,CAACG,MAAM,IAAIH,CAAC,CAACI,OAAO,IAAIJ,CAAC,CAACK,QAAQ,CAAC,CAAC;IACzE;IACA,MAAMC,WAAW,GAAGN,CAAC,CAACO,MAAM,IAAI,IAAI,IAAIP,CAAC,CAACO,MAAM,KAAK,CAAC,CAAC,CAAC;IACxD,MAAMC,YAAY,GAAG,CAAClB,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAACmB,QAAQ;IACzD;IACAT,CAAC,CAACU,aAAa,EAAEC,MACnB,CAAC,CAAC,CAAC;;IAEH,IAAIC,YAAY,GAAG,KAAK;IAExB,IAAI9B,QAAQ,CAAC+B,EAAE,KAAK,KAAK,IAAI,CAACb,CAAC,EAAE;MAC/BY,YAAY,GAAG,IAAI;IACrB,CAAC,MAAM,IAAI,CAACX,cAAc,IAAIK,WAAW,IAAIE,YAAY,EAAE;MACzDR,CAAC,CAACc,cAAc,CAAC,CAAC;MAClBF,YAAY,GAAG,IAAI;IACrB;IAEA,IAAIA,YAAY,EAAE;MAChB,IAAIlB,MAAM,EAAE;QACV,IAAIG,UAAU,EAAE;UACdA,UAAU,CAACkB,QAAQ,CAACrB,MAAM,CAAC;QAC7B,CAAC,MAAM,IAAIC,IAAI,EAAE;UACfA,IAAI,CAACoB,QAAQ,CAACrB,MAAM,CAAC;QACvB,CAAC,MAAM;UACL,MAAM,IAAIsB,KAAK,CACb,kFACF,CAAC;QACH;MACF,CAAC,MAAM;QACL;QACAnB,UAAU,EAAEoB,QAAQ,CAAC9B,MAAM,EAAEF,MAAM,CAAC;MACtC;IACF;EACF,CAAC;EAED,MAAMiC,sBAAsB,GAAGpB,OAAO,EAAEpB,gBAAgB,IAAIA,gBAAgB;EAE5E,OAAO;IACLe,IAAI,EACFA,IAAI,KACHX,QAAQ,CAAC+B,EAAE,KAAK,KAAK,IAAI1B,MAAM,IAAI,IAAI,GACpC+B,sBAAsB,CACpB;MACE9B,MAAM,EAAE,CACN;QACEC,IAAI,EAAEF,MAAM;QACZ;QACAF,MAAM,EAAEA,MAAM;QACd;QACAC,KAAK,EAAEF,kBAAkB,CAACC,MAAM;MAClC,CAAC;IAEL,CAAC,EACDa,OAAO,EAAEqB,MACX,CAAC,GACD7B,SAAS,CAAC;IAChB8B,iBAAiB,EAAE,MAAe;IAClCrB;EACF,CAAC;AACH"}
|
|
@@ -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"}
|
package/lib/module/useLinking.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@react-navigation/core';
|
|
2
2
|
import isEqual from 'fast-deep-equal';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import createMemoryHistory from './createMemoryHistory';
|
|
5
|
-
import ServerContext from './ServerContext';
|
|
4
|
+
import { createMemoryHistory } from './createMemoryHistory';
|
|
5
|
+
import { ServerContext } from './ServerContext';
|
|
6
6
|
/**
|
|
7
7
|
* Find the matching navigation state that changed between 2 navigation states
|
|
8
8
|
* e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state
|
|
@@ -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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
63
|
-
export
|
|
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 default 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 =
|
|
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 default 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 default 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 (
|
|
147
|
+
if (record?.path === path && record?.state) {
|
|
152
148
|
navigation.resetRoot(record.state);
|
|
153
149
|
return;
|
|
154
150
|
}
|
|
@@ -157,11 +153,11 @@ export default 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
|
-
|
|
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 default 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
|
|
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 default 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 default 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
|
|
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":"AAAA,SACEA,gBAAgB,EAChBC,kBAAkB,IAAIC,yBAAyB,EAC/CC,gBAAgB,IAAIC,uBAAuB,EAC3CC,gBAAgB,IAAIC,uBAAuB,EAI3CC,4BAA4B,QACvB,wBAAwB;AAC/B,OAAOC,OAAO,MAAM,iBAAiB;AACrC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,OAAOC,aAAa,MAAM,iBAAiB;AAK3C;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,CACxBC,CAAgB,EAChBC,CAAgB,KACmB;EACnC,IAAID,CAAC,KAAKE,SAAS,IAAID,CAAC,KAAKC,SAAS,IAAIF,CAAC,CAACG,GAAG,KAAKF,CAAC,CAACE,GAAG,EAAE;IACzD,OAAO,CAACD,SAAS,EAAEA,SAAS,CAAC;EAC/B;;EAEA;EACA,MAAME,cAAc,GAAGJ,CAAC,CAACK,OAAO,GAAGL,CAAC,CAACK,OAAO,CAACC,MAAM,GAAGN,CAAC,CAACO,MAAM,CAACD,MAAM;EACrE,MAAME,cAAc,GAAGP,CAAC,CAACI,OAAO,GAAGJ,CAAC,CAACI,OAAO,CAACC,MAAM,GAAGL,CAAC,CAACM,MAAM,CAACD,MAAM;EAErE,MAAMG,MAAM,GAAGT,CAAC,CAACO,MAAM,CAACP,CAAC,CAACU,KAAK,CAAC;EAChC,MAAMC,MAAM,GAAGV,CAAC,CAACM,MAAM,CAACN,CAAC,CAACS,KAAK,CAAC;EAEhC,MAAME,WAAW,GAAGH,MAAM,CAACI,KAAsB;EACjD,MAAMC,WAAW,GAAGH,MAAM,CAACE,KAAsB;;EAEjD;EACA;EACA;EACA;EACA;EACA,IACET,cAAc,KAAKI,cAAc,IACjCC,MAAM,CAACN,GAAG,KAAKQ,MAAM,CAACR,GAAG,IACzBS,WAAW,KAAKV,SAAS,IACzBY,WAAW,KAAKZ,SAAS,IACzBU,WAAW,CAACT,GAAG,KAAKW,WAAW,CAACX,GAAG,EACnC;IACA,OAAO,CAACH,CAAC,EAAEC,CAAC,CAAC;EACf;EAEA,OAAOF,iBAAiB,CAACa,WAAW,EAAEE,WAAW,CAAC;AACpD,CAAC;;AAED;AACA;AACA;AACA,MAAMC,MAAM,GAAIC,EAAuB,IAAK;EAC1C;EACA,IAAIC,QAAQ,GAAG,KAAK;EACpB,IAAIC,KAA8B,GAAG,EAAE;EAEvC,MAAMC,QAAQ,GAAG,YAAY;IAC3B,IAAI;MACF,IAAIF,QAAQ,EAAE;QACZ;QACA;QACAC,KAAK,CAACE,OAAO,CAACD,QAAQ,CAAC;QACvB;MACF;MAEAF,QAAQ,GAAG,IAAI;MAEf,MAAMD,EAAE,EAAE;IACZ,CAAC,SAAS;MACRC,QAAQ,GAAG,KAAK;MAEhB,IAAIC,KAAK,CAACZ,MAAM,EAAE;QAChB;QACA,MAAMe,IAAI,GAAGH,KAAK,CAACI,GAAG,EAAE;QAExBD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,EAAI;MACV;IACF;EACF,CAAC;EAED,OAAOF,QAAQ;AACjB,CAAC;AAED,IAAII,eAAyB,GAAG,EAAE;AAIlC,eAAe,SAASC,UAAU,CAChCC,GAA2D,QAQ3D;EAAA,IAPA;IACEC,OAAO,GAAG,IAAI;IACdC,MAAM;IACNnC,gBAAgB,GAAGC,uBAAuB;IAC1CH,gBAAgB,GAAGC,uBAAuB;IAC1CH,kBAAkB,GAAGC;EACd,CAAC;EAEV,MAAMuC,WAAW,GAAGlC,4BAA4B,EAAE;EAElDE,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,OAAO9B,SAAS;IAClB;IAEA,IAAI0B,WAAW,EAAE;MACf,OAAO1B,SAAS;IAClB;IAEA,IAAIwB,OAAO,KAAK,KAAK,IAAIH,eAAe,CAACjB,MAAM,EAAE;MAC/C2B,OAAO,CAACC,KAAK,CACX,CACE,6KAA6K,EAC7K,uFAAuF,EACvF,4DAA4D,CAC7D,CACEC,IAAI,CAAC,IAAI,CAAC,CACVC,IAAI,EAAE,CACV;IACH;IAEA,MAAMC,OAAO,GAAGC,MAAM,EAAE;IAExB,IAAIZ,OAAO,KAAK,KAAK,EAAE;MACrBH,eAAe,CAACgB,IAAI,CAACF,OAAO,CAAC;IAC/B;IAEA,OAAO,MAAM;MACX,MAAM3B,KAAK,GAAGa,eAAe,CAACiB,OAAO,CAACH,OAAO,CAAC;MAE9C,IAAI3B,KAAK,GAAG,CAAC,CAAC,EAAE;QACda,eAAe,CAACkB,MAAM,CAAC/B,KAAK,EAAE,CAAC,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,CAACgB,OAAO,EAAEE,WAAW,CAAC,CAAC;EAE1B,MAAM,CAACvB,OAAO,CAAC,GAAGT,KAAK,CAAC8C,QAAQ,CAAC7C,mBAAmB,CAAC;;EAErD;EACA;EACA;EACA,MAAM8C,UAAU,GAAG/C,KAAK,CAACgD,MAAM,CAAClB,OAAO,CAAC;EACxC,MAAMmB,SAAS,GAAGjD,KAAK,CAACgD,MAAM,CAACjB,MAAM,CAAC;EACtC,MAAMmB,mBAAmB,GAAGlD,KAAK,CAACgD,MAAM,CAACpD,gBAAgB,CAAC;EAC1D,MAAMuD,mBAAmB,GAAGnD,KAAK,CAACgD,MAAM,CAACtD,gBAAgB,CAAC;EAC1D,MAAM0D,qBAAqB,GAAGpD,KAAK,CAACgD,MAAM,CAACxD,kBAAkB,CAAC;EAE9DQ,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpBc,UAAU,CAACM,OAAO,GAAGvB,OAAO;IAC5BmB,SAAS,CAACI,OAAO,GAAGtB,MAAM;IAC1BmB,mBAAmB,CAACG,OAAO,GAAGzD,gBAAgB;IAC9CuD,mBAAmB,CAACE,OAAO,GAAG3D,gBAAgB;IAC9C0D,qBAAqB,CAACC,OAAO,GAAG7D,kBAAkB;EACpD,CAAC,CAAC;EAEF,MAAM8D,MAAM,GAAGtD,KAAK,CAACuD,UAAU,CAACrD,aAAa,CAAC;EAE9C,MAAMsD,eAAe,GAAGxD,KAAK,CAACyD,WAAW,CAAC,MAAM;IAC9C,IAAIC,KAA8B;IAElC,IAAIX,UAAU,CAACM,OAAO,EAAE;MACtB,MAAMM,QAAQ,GACZ,CAAAL,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,QAAQ,MACf,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACD,QAAQ,GAAGrD,SAAS,CAAC;MAE/D,MAAMuD,IAAI,GAAGF,QAAQ,GAAGA,QAAQ,CAACG,QAAQ,GAAGH,QAAQ,CAACI,MAAM,GAAGzD,SAAS;MAEvE,IAAIuD,IAAI,EAAE;QACRH,KAAK,GAAGR,mBAAmB,CAACG,OAAO,CAACQ,IAAI,EAAEZ,SAAS,CAACI,OAAO,CAAC;MAC9D;IACF;IAEA,MAAMW,QAAQ,GAAG;MACfC,IAAI,CAACC,WAAsD,EAAE;QAC3D,OAAOC,OAAO,CAACC,OAAO,CAACF,WAAW,GAAGA,WAAW,CAACR,KAAK,CAAC,GAAGA,KAAK,CAAC;MAClE,CAAC;MACDW,KAAK,GAAG;QACN,OAAOL,QAAQ;MACjB;IACF,CAAC;IAED,OAAOA,QAAQ;IACf;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMM,gBAAgB,GAAGtE,KAAK,CAACgD,MAAM,CAAqB1C,SAAS,CAAC;EACpE,MAAMiE,gBAAgB,GAAGvE,KAAK,CAACgD,MAAM,CAA8B1C,SAAS,CAAC;EAC7E,MAAMkE,sBAAsB,GAAGxE,KAAK,CAACgD,MAAM,CAAqB1C,SAAS,CAAC;EAE1EN,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpBqC,gBAAgB,CAACjB,OAAO,GAAG5C,OAAO,CAACK,KAAK;IAExC,OAAOL,OAAO,CAACgE,MAAM,CAAC,MAAM;MAC1B,MAAMC,UAAU,GAAG7C,GAAG,CAACwB,OAAO;MAE9B,IAAI,CAACqB,UAAU,IAAI,CAAC5C,OAAO,EAAE;QAC3B;MACF;MAEA,MAAM+B,IAAI,GAAGF,QAAQ,CAACG,QAAQ,GAAGH,QAAQ,CAACI,MAAM;MAChD,MAAMjD,KAAK,GAAGL,OAAO,CAACK,KAAK;MAE3B,MAAM6D,aAAa,GAAGL,gBAAgB,CAACjB,OAAO,IAAI,CAAC;MAEnDiB,gBAAgB,CAACjB,OAAO,GAAGvC,KAAK;MAChC0D,sBAAsB,CAACnB,OAAO,GAAGQ,IAAI;;MAErC;MACA;MACA;MACA,MAAMe,MAAM,GAAGnE,OAAO,CAACoE,GAAG,CAAC/D,KAAK,CAAC;MAEjC,IAAI,CAAA8D,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEf,IAAI,MAAKA,IAAI,IAAIe,MAAM,aAANA,MAAM,eAANA,MAAM,CAAE3D,KAAK,EAAE;QAC1CyD,UAAU,CAACI,SAAS,CAACF,MAAM,CAAC3D,KAAK,CAAC;QAClC;MACF;MAEA,MAAMA,KAAK,GAAGiC,mBAAmB,CAACG,OAAO,CAACQ,IAAI,EAAEZ,SAAS,CAACI,OAAO,CAAC;;MAElE;MACA;MACA,IAAIpC,KAAK,EAAE;QACT;QACA;QACA,MAAM8D,SAAS,GAAGL,UAAU,CAACM,YAAY,EAAE;QAE3C,IAAI/D,KAAK,CAACN,MAAM,CAACsE,IAAI,CAAEC,CAAC,IAAK,EAACH,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEI,UAAU,CAACC,QAAQ,CAACF,CAAC,CAACG,IAAI,CAAC,EAAC,EAAE;UACrEhD,OAAO,CAACiD,IAAI,CACV,0SAA0S,CAC3S;UACD;QACF;QAEA,IAAIxE,KAAK,GAAG6D,aAAa,EAAE;UACzB,MAAMY,MAAM,GAAGnC,qBAAqB,CAACC,OAAO,CAC1CpC,KAAK,EACLgC,SAAS,CAACI,OAAO,CAClB;UAED,IAAIkC,MAAM,KAAKjF,SAAS,EAAE;YACxB,IAAI;cACFoE,UAAU,CAACc,QAAQ,CAACD,MAAM,CAAC;YAC7B,CAAC,CAAC,OAAOE,CAAC,EAAE;cACV;cACA;cACApD,OAAO,CAACiD,IAAI,CACT,qDAAoDzB,IAAK,MACxD,OAAO4B,CAAC,KAAK,QAAQ,IAAIA,CAAC,IAAI,IAAI,IAAI,SAAS,IAAIA,CAAC,GAChDA,CAAC,CAACC,OAAO,GACTD,CACL,EAAC,CACH;YACH;UACF,CAAC,MAAM;YACLf,UAAU,CAACI,SAAS,CAAC7D,KAAK,CAAC;UAC7B;QACF,CAAC,MAAM;UACLyD,UAAU,CAACI,SAAS,CAAC7D,KAAK,CAAC;QAC7B;MACF,CAAC,MAAM;QACL;QACAyD,UAAU,CAACI,SAAS,CAAC7D,KAAK,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACa,OAAO,EAAErB,OAAO,EAAEoB,GAAG,CAAC,CAAC;EAE3B7B,KAAK,CAACiC,SAAS,CAAC,MAAM;IAAA;IACpB,IAAI,CAACH,OAAO,EAAE;MACZ;IACF;IAEA,MAAM6D,eAAe,GAAG,CACtBC,KAA0C,EAC1C3E,KAAsB,KACX;MACX;MACA;MACA,IAAI2E,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE/B,IAAI,EAAE;QACf,MAAMgC,YAAY,GAAG3C,mBAAmB,CAACG,OAAO,CAC9CuC,KAAK,CAAC/B,IAAI,EACVZ,SAAS,CAACI,OAAO,CAClB;QAED,IAAIwC,YAAY,EAAE;UAChB,MAAMC,YAAY,GAAGvG,gBAAgB,CAACsG,YAAY,CAAC;UAEnD,IACEC,YAAY,IACZA,YAAY,CAACT,IAAI,KAAKO,KAAK,CAACP,IAAI,IAChCtF,OAAO,CAAC+F,YAAY,CAACC,MAAM,EAAEH,KAAK,CAACG,MAAM,CAAC,EAC1C;YACA,OAAOH,KAAK,CAAC/B,IAAI;UACnB;QACF;MACF;MAEA,OAAOV,mBAAmB,CAACE,OAAO,CAACpC,KAAK,EAAEgC,SAAS,CAACI,OAAO,CAAC;IAC9D,CAAC;IAED,IAAIxB,GAAG,CAACwB,OAAO,EAAE;MACf;MACA;MACA,MAAMpC,KAAK,GAAGY,GAAG,CAACwB,OAAO,CAAC2B,YAAY,EAAE;MAExC,IAAI/D,KAAK,EAAE;QACT,MAAM2E,KAAK,GAAGrG,gBAAgB,CAAC0B,KAAK,CAAC;QACrC,MAAM4C,IAAI,GAAG8B,eAAe,CAACC,KAAK,EAAE3E,KAAK,CAAC;QAE1C,IAAIsD,gBAAgB,CAAClB,OAAO,KAAK/C,SAAS,EAAE;UAC1CiE,gBAAgB,CAAClB,OAAO,GAAGpC,KAAK;QAClC;QAEAR,OAAO,CAACuF,OAAO,CAAC;UAAEnC,IAAI;UAAE5C;QAAM,CAAC,CAAC;MAClC;IACF;IAEA,MAAMgF,aAAa,GAAG,YAAY;MAChC,MAAMvB,UAAU,GAAG7C,GAAG,CAACwB,OAAO;MAE9B,IAAI,CAACqB,UAAU,IAAI,CAAC5C,OAAO,EAAE;QAC3B;MACF;MAEA,MAAMoE,aAAa,GAAG3B,gBAAgB,CAAClB,OAAO;MAC9C,MAAMpC,KAAK,GAAGyD,UAAU,CAACM,YAAY,EAAE;;MAEvC;MACA,IAAI,CAAC/D,KAAK,EAAE;QACV;MACF;MAEA,MAAMkF,WAAW,GAAG3B,sBAAsB,CAACnB,OAAO;MAClD,MAAMuC,KAAK,GAAGrG,gBAAgB,CAAC0B,KAAK,CAAC;MACrC,MAAM4C,IAAI,GAAG8B,eAAe,CAACC,KAAK,EAAE3E,KAAK,CAAC;MAE1CsD,gBAAgB,CAAClB,OAAO,GAAGpC,KAAK;MAChCuD,sBAAsB,CAACnB,OAAO,GAAG/C,SAAS;;MAE1C;MACA;MACA;MACA;MACA,MAAM,CAAC8F,oBAAoB,EAAEC,YAAY,CAAC,GAAGlG,iBAAiB,CAC5D+F,aAAa,EACbjF,KAAK,CACN;MAED,IACEmF,oBAAoB,IACpBC,YAAY;MACZ;MACA;MACAxC,IAAI,KAAKsC,WAAW,EACpB;QACA,MAAMG,YAAY,GAChB,CAACD,YAAY,CAAC5F,OAAO,GACjB4F,YAAY,CAAC5F,OAAO,CAACC,MAAM,GAC3B2F,YAAY,CAAC1F,MAAM,CAACD,MAAM,KAC7B0F,oBAAoB,CAAC3F,OAAO,GACzB2F,oBAAoB,CAAC3F,OAAO,CAACC,MAAM,GACnC0F,oBAAoB,CAACzF,MAAM,CAACD,MAAM,CAAC;QAEzC,IAAI4F,YAAY,GAAG,CAAC,EAAE;UACpB;UACA;UACA7F,OAAO,CAACkC,IAAI,CAAC;YAAEkB,IAAI;YAAE5C;UAAM,CAAC,CAAC;QAC/B,CAAC,MAAM,IAAIqF,YAAY,GAAG,CAAC,EAAE;UAC3B;;UAEA,MAAMC,SAAS,GAAG9F,OAAO,CAAC+F,SAAS,CAAC;YAAE3C;UAAK,CAAC,CAAC;UAC7C,MAAM4C,YAAY,GAAGhG,OAAO,CAACK,KAAK;UAElC,IAAI;YACF,IAAIyF,SAAS,KAAK,CAAC,CAAC,IAAIA,SAAS,GAAGE,YAAY,EAAE;cAChD;cACA,MAAMhG,OAAO,CAACiG,EAAE,CAACH,SAAS,GAAGE,YAAY,CAAC;YAC5C,CAAC,MAAM;cACL;cACA;cACA;cACA,MAAMhG,OAAO,CAACiG,EAAE,CAACJ,YAAY,CAAC;YAChC;;YAEA;YACA7F,OAAO,CAACuF,OAAO,CAAC;cAAEnC,IAAI;cAAE5C;YAAM,CAAC,CAAC;UAClC,CAAC,CAAC,OAAOwE,CAAC,EAAE;YACV;UAAA;QAEJ,CAAC,MAAM;UACL;UACAhF,OAAO,CAACuF,OAAO,CAAC;YAAEnC,IAAI;YAAE5C;UAAM,CAAC,CAAC;QAClC;MACF,CAAC,MAAM;QACL;QACA;QACAR,OAAO,CAACuF,OAAO,CAAC;UAAEnC,IAAI;UAAE5C;QAAM,CAAC,CAAC;MAClC;IACF,CAAC;;IAED;IACA;IACA;IACA,uBAAOY,GAAG,CAACwB,OAAO,iDAAX,aAAasD,WAAW,CAAC,OAAO,EAAExF,MAAM,CAAC8E,aAAa,CAAC,CAAC;EACjE,CAAC,EAAE,CAACnE,OAAO,EAAErB,OAAO,EAAEoB,GAAG,CAAC,CAAC;EAE3B,OAAO;IACL2B;EACF,CAAC;AACH"}
|
|
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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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { getActionFromState as getActionFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Linking, Platform } from 'react-native';
|
|
4
|
-
import extractPathFromURL from './extractPathFromURL';
|
|
5
|
-
|
|
6
|
-
export
|
|
4
|
+
import { extractPathFromURL } from './extractPathFromURL';
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 default 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 =
|
|
28
|
+
const removeEventListener = Linking.removeEventListener?.bind(Linking);
|
|
29
29
|
return () => {
|
|
30
30
|
// https://github.com/facebook/react-native/commit/6d1aca806cee86ad76de771ed3a1cc62982ebcd7
|
|
31
|
-
if (subscription
|
|
31
|
+
if (subscription?.remove) {
|
|
32
32
|
subscription.remove();
|
|
33
33
|
} else {
|
|
34
|
-
removeEventListener
|
|
34
|
+
removeEventListener?.('url', callback);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
},
|
|
@@ -91,11 +91,19 @@ export default function useLinking(ref, _ref) {
|
|
|
91
91
|
let state;
|
|
92
92
|
if (enabledRef.current) {
|
|
93
93
|
const url = getInitialURLRef.current();
|
|
94
|
-
if (url != null
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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 default 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 default function useLinking(ref, _ref) {
|
|
|
117
125
|
const navigation = ref.current;
|
|
118
126
|
const state = navigation ? getStateFromURL(url) : undefined;
|
|
119
127
|
if (navigation && state) {
|
|
120
|
-
//
|
|
121
|
-
|
|
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 => !
|
|
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 default 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
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getActionFromState","getActionFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","React","Linking","Platform","extractPathFromURL","linkingHandlers","useLinking","ref","enabled","prefixes","filter","config","getInitialURL","Promise","race","resolve","setTimeout","subscribe","listener","callback","url","subscription","addEventListener","removeEventListener","bind","remove","independent","useEffect","process","env","NODE_ENV","undefined","length","console","error","OS","join","trim","handler","Symbol","push","index","indexOf","splice","enabledRef","useRef","prefixesRef","filterRef","configRef","getInitialURLRef","getStateFromPathRef","getActionFromStateRef","current","getStateFromURL","useCallback","path","getInitialState","state","then","thenable","onfulfilled","catch","navigation","rootState","getRootState","routes","some","r","routeNames","includes","name","
|
|
1
|
+
{"version":3,"names":["getActionFromState","getActionFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","React","Linking","Platform","extractPathFromURL","linkingHandlers","useLinking","ref","_ref","onUnhandledLinking","enabled","prefixes","filter","config","getInitialURL","Promise","race","resolve","setTimeout","subscribe","listener","callback","_ref2","url","subscription","addEventListener","removeEventListener","bind","remove","independent","useEffect","process","env","NODE_ENV","undefined","length","console","error","OS","join","trim","handler","Symbol","push","index","indexOf","splice","enabledRef","useRef","prefixesRef","filterRef","configRef","getInitialURLRef","getStateFromPathRef","getActionFromStateRef","current","getStateFromURL","useCallback","path","getInitialState","state","then","thenable","onfulfilled","catch","navigation","rootState","getRootState","routes","some","r","routeNames","includes","name","action","dispatch","e","warn","message","resetRoot"],"sourceRoot":"../../src","sources":["useLinking.native.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { LocaleDirContext } from './LocaleDirContext';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Hook to access the text direction specified in the `NavigationContainer`.
|
|
6
|
+
*/
|
|
7
|
+
export function useLocale() {
|
|
8
|
+
const direction = React.useContext(LocaleDirContext);
|
|
9
|
+
if (direction === undefined) {
|
|
10
|
+
throw new Error("Couldn't determine the text direction. Is your component inside NavigationContainer?");
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
direction
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=useLocale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","LocaleDirContext","useLocale","direction","useContext","undefined","Error"],"sourceRoot":"../../src","sources":["useLocale.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,MAAMC,SAAS,GAAGH,KAAK,CAACI,UAAU,CAACH,gBAAgB,CAAC;EAEpD,IAAIE,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,sFACF,CAAC;EACH;EAEA,OAAO;IAAEH;EAAU,CAAC;AACtB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NavigationContext, useRoute } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
function getScrollableNode(ref) {
|
|
4
4
|
if (ref.current == null) {
|
|
@@ -21,13 +21,15 @@ function getScrollableNode(ref) {
|
|
|
21
21
|
return ref.current;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
export
|
|
25
|
-
const navigation =
|
|
24
|
+
export function useScrollToTop(ref) {
|
|
25
|
+
const navigation = React.useContext(NavigationContext);
|
|
26
26
|
const route = useRoute();
|
|
27
|
+
if (navigation === undefined) {
|
|
28
|
+
throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
|
|
29
|
+
}
|
|
27
30
|
React.useEffect(() => {
|
|
28
|
-
|
|
31
|
+
const tabNavigations = [];
|
|
29
32
|
let currentNavigation = navigation;
|
|
30
|
-
|
|
31
33
|
// If the screen is nested inside multiple tab navigators, we should scroll to top for any of them
|
|
32
34
|
// So we need to find all the parent tab navigators and add the listeners there
|
|
33
35
|
while (currentNavigation) {
|
|
@@ -43,7 +45,7 @@ export default function useScrollToTop(ref) {
|
|
|
43
45
|
return tab.addListener(
|
|
44
46
|
// We don't wanna import tab types here to avoid extra deps
|
|
45
47
|
// in addition, there are multiple tab implementations
|
|
46
|
-
// @ts-expect-error
|
|
48
|
+
// @ts-expect-error the `tabPress` event is only available when navigation type is tab
|
|
47
49
|
'tabPress', e => {
|
|
48
50
|
// We should scroll to top only when the screen is focused
|
|
49
51
|
const isFocused = navigation.isFocused();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["NavigationContext","useRoute","React","getScrollableNode","ref","current","getScrollResponder","getNode","useScrollToTop","navigation","useContext","route","undefined","Error","useEffect","tabNavigations","currentNavigation","getState","type","push","getParent","length","unsubscribers","map","tab","addListener","e","isFocused","isFirst","includes","routes","key","requestAnimationFrame","scrollable","defaultPrevented","scrollToTop","scrollTo","y","animated","scrollToOffset","offset","scrollResponderScrollTo","forEach","unsubscribe"],"sourceRoot":"../../src","sources":["useScrollToTop.tsx"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export
|
|
2
|
+
export function useThenable(create) {
|
|
3
3
|
const [promise] = React.useState(create);
|
|
4
4
|
let initialState = [false, undefined];
|
|
5
5
|
|
|
6
6
|
// Check if our thenable is synchronous
|
|
7
|
+
// eslint-disable-next-line promise/catch-or-return, promise/always-return
|
|
7
8
|
promise.then(result => {
|
|
8
9
|
initialState = [true, result];
|
|
9
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useThenable","create","promise","useState","initialState","undefined","then","result","state","setState","resolved","useEffect","cancelled","resolve"],"sourceRoot":"../../src","sources":["useThenable.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,
|
|
1
|
+
{"version":3,"names":["React","useThenable","create","promise","useState","initialState","undefined","then","result","state","setState","resolved","useEffect","cancelled","resolve"],"sourceRoot":"../../src","sources":["useThenable.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,WAAWA,CAAIC,MAA4B,EAAE;EAC3D,MAAM,CAACC,OAAO,CAAC,GAAGH,KAAK,CAACI,QAAQ,CAACF,MAAM,CAAC;EAExC,IAAIG,YAAsC,GAAG,CAAC,KAAK,EAAEC,SAAS,CAAC;;EAE/D;EACA;EACAH,OAAO,CAACI,IAAI,CAAEC,MAAM,IAAK;IACvBH,YAAY,GAAG,CAAC,IAAI,EAAEG,MAAM,CAAC;EAC/B,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGV,KAAK,CAACI,QAAQ,CAACC,YAAY,CAAC;EACtD,MAAM,CAACM,QAAQ,CAAC,GAAGF,KAAK;EAExBT,KAAK,CAACY,SAAS,CAAC,MAAM;IACpB,IAAIC,SAAS,GAAG,KAAK;IAErB,MAAMC,OAAO,GAAG,MAAAA,CAAA,KAAY;MAC1B,IAAIN,MAAM;MAEV,IAAI;QACFA,MAAM,GAAG,MAAML,OAAO;MACxB,CAAC,SAAS;QACR,IAAI,CAACU,SAAS,EAAE;UACdH,QAAQ,CAAC,CAAC,IAAI,EAAEF,MAAM,CAAC,CAAC;QAC1B;MACF;IACF,CAAC;IAED,IAAI,CAACG,QAAQ,EAAE;MACbG,OAAO,CAAC,CAAC;IACX;IAEA,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACV,OAAO,EAAEQ,QAAQ,CAAC,CAAC;EAEvB,OAAOF,KAAK;AACd"}
|