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