@react-navigation/native 8.0.0-alpha.34 → 8.0.0-alpha.36
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/module/Link.js +27 -7
- package/lib/module/Link.js.map +1 -1
- package/lib/module/createMemoryHistory.js +1 -0
- package/lib/module/createMemoryHistory.js.map +1 -1
- package/lib/module/native/ReactNavigationCornerInsetViewNativeComponent.ts +1 -1
- package/lib/module/useDeepStableValue.js +12 -0
- package/lib/module/useDeepStableValue.js.map +1 -0
- package/lib/module/useLinkProps.js +156 -53
- package/lib/module/useLinkProps.js.map +1 -1
- package/lib/typescript/src/Link.d.ts +7 -5
- package/lib/typescript/src/Link.d.ts.map +1 -1
- package/lib/typescript/src/createMemoryHistory.d.ts.map +1 -1
- package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/useDeepStableValue.d.ts +2 -0
- package/lib/typescript/src/useDeepStableValue.d.ts.map +1 -0
- package/lib/typescript/src/useLinkProps.d.ts +31 -7
- package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/Link.tsx +43 -22
- package/src/createMemoryHistory.tsx +2 -0
- package/src/native/ReactNavigationCornerInsetViewNativeComponent.ts +1 -1
- package/src/useDeepStableValue.tsx +12 -0
- package/src/useLinkProps.tsx +388 -103
package/lib/module/Link.js
CHANGED
|
@@ -8,32 +8,44 @@ import { useLinkProps } from "./useLinkProps.js";
|
|
|
8
8
|
* Component to render link to another screen using a path.
|
|
9
9
|
* Uses an anchor tag on the web.
|
|
10
10
|
*
|
|
11
|
+
* @param props.in Name of the current or parent screen whose navigator contains the target screen.
|
|
11
12
|
* @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
|
|
12
13
|
* @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
|
|
13
14
|
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
14
|
-
* @param props.action Optional action to
|
|
15
|
+
* @param props.action Optional action to override the in-page navigation. The `href` is still derived from `screen`, so this can be used to render a link while dispatching a different action (e.g. a `replace`).
|
|
15
16
|
* @param props.children Child elements to render the content.
|
|
16
17
|
*/
|
|
17
18
|
export function Link({
|
|
19
|
+
in: parent,
|
|
18
20
|
screen,
|
|
19
21
|
params,
|
|
20
22
|
action,
|
|
21
23
|
href,
|
|
22
24
|
style,
|
|
25
|
+
target,
|
|
23
26
|
...rest
|
|
24
27
|
}) {
|
|
25
|
-
|
|
26
|
-
colors,
|
|
27
|
-
fonts
|
|
28
|
-
} = useTheme();
|
|
29
|
-
// @ts-expect-error: This is already type-checked by the prop types
|
|
28
|
+
// @ts-expect-error: destructuring loses the relationship between target props
|
|
30
29
|
const props = useLinkProps({
|
|
30
|
+
in: parent,
|
|
31
31
|
screen,
|
|
32
32
|
params,
|
|
33
33
|
action,
|
|
34
34
|
href
|
|
35
35
|
});
|
|
36
|
+
|
|
37
|
+
// Keep usage of `useTheme` after `useLinkProps`
|
|
38
|
+
// This ensures proper error when used outside of navigation container
|
|
39
|
+
const {
|
|
40
|
+
colors,
|
|
41
|
+
fonts
|
|
42
|
+
} = useTheme();
|
|
36
43
|
const onPress = e => {
|
|
44
|
+
if (rest.disabled) {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
37
49
|
if ('onPress' in rest) {
|
|
38
50
|
rest.onPress?.(e);
|
|
39
51
|
}
|
|
@@ -48,7 +60,15 @@ export function Link({
|
|
|
48
60
|
...rest,
|
|
49
61
|
...Platform.select({
|
|
50
62
|
web: {
|
|
51
|
-
|
|
63
|
+
'aria-disabled': rest.disabled,
|
|
64
|
+
onAuxClick: rest.disabled ? e => {
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
} : undefined,
|
|
68
|
+
onClick: onPress,
|
|
69
|
+
hrefAttrs: {
|
|
70
|
+
target
|
|
71
|
+
}
|
|
52
72
|
},
|
|
53
73
|
default: {
|
|
54
74
|
onPress
|
package/lib/module/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTheme","React","Platform","Text","useLinkProps","Link","screen","params","action","href","style","rest","
|
|
1
|
+
{"version":3,"names":["useTheme","React","Platform","Text","useLinkProps","Link","in","parent","screen","params","action","href","style","target","rest","props","colors","fonts","onPress","e","disabled","preventDefault","stopPropagation","defaultPrevented","createElement","select","web","onAuxClick","undefined","onClick","hrefAttrs","default","color","primary","regular"],"sourceRoot":"../../src","sources":["Link.tsx"],"mappings":";;AAAA,SAA6BA,QAAQ,QAAQ,wBAAwB;AACrE,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAEEC,QAAQ,EACRC,IAAI,QAEC,cAAc;AAErB,SAAyBC,YAAY,QAAQ,mBAAgB;AAa7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAMlB;EACAC,EAAE,EAAEC,MAAM;EACVC,MAAM;EACNC,MAAM;EACNC,MAAM;EACNC,IAAI;EACJC,KAAK;EACLC,MAAM;EACN,GAAGC;AACqD,CAAC,EAAE;EAC3D;EACA,MAAMC,KAAK,GAAGX,YAAY,CAAC;IAAEE,EAAE,EAAEC,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,CAAC;;EAExE;EACA;EACA,MAAM;IAAEK,MAAM;IAAEC;EAAM,CAAC,GAAGjB,QAAQ,CAAC,CAAC;EAEpC,MAAMkB,OAAO,GAAIC,CAAa,IAAK;IACjC,IAAIL,IAAI,CAACM,QAAQ,EAAE;MACjBD,CAAC,CAACE,cAAc,CAAC,CAAC;MAClBF,CAAC,CAACG,eAAe,CAAC,CAAC;MACnB;IACF;IAEA,IAAI,SAAS,IAAIR,IAAI,EAAE;MACrBA,IAAI,CAACI,OAAO,GAAGC,CAAC,CAAC;IACnB;;IAEA;IACA,IAAI,CAACA,CAAC,CAACI,gBAAgB,EAAE;MACvBR,KAAK,CAACG,OAAO,CAACC,CAAC,CAAC;IAClB;EACF,CAAC;EAED,oBAAOlB,KAAK,CAACuB,aAAa,CAACrB,IAAI,EAAE;IAC/B,GAAGY,KAAK;IACR,GAAGD,IAAI;IACP,GAAGZ,QAAQ,CAACuB,MAAM,CAAC;MACjBC,GAAG,EAAE;QACH,eAAe,EAAEZ,IAAI,CAACM,QAAQ;QAC9BO,UAAU,EAAEb,IAAI,CAACM,QAAQ,GACpBD,CAAkD,IAAK;UACtDA,CAAC,CAACE,cAAc,CAAC,CAAC;UAClBF,CAAC,CAACG,eAAe,CAAC,CAAC;QACrB,CAAC,GACDM,SAAS;QACbC,OAAO,EAAEX,OAAO;QAChBY,SAAS,EAAE;UAAEjB;QAAO;MACtB,CAAC;MACDkB,OAAO,EAAE;QAAEb;MAAQ;IACrB,CAAC,CAAC;IACFN,KAAK,EAAE,CAAC;MAAEoB,KAAK,EAAEhB,MAAM,CAACiB;IAAQ,CAAC,EAAEhB,KAAK,CAACiB,OAAO,EAAEtB,KAAK;EACzD,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -189,6 +189,7 @@ export function createMemoryHistory() {
|
|
|
189
189
|
// But on Firefox, it seems to take much longer, around 50ms from our testing
|
|
190
190
|
// We're using a hacky timeout since there doesn't seem to be way to know for sure
|
|
191
191
|
const timer = setTimeout(() => {
|
|
192
|
+
window.removeEventListener('popstate', onPopState);
|
|
192
193
|
const foundIndex = pending.findIndex(it => it.ref === done);
|
|
193
194
|
if (foundIndex > -1) {
|
|
194
195
|
pending[foundIndex]?.cb();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","getPathWithoutHash","path","split","createMemoryHistory","index","items","pending","interrupt","forEach","it","cb","history","id","window","state","findIndex","item","get","backIndex","pathWithoutHash","i","push","slice","length","pushState","replace","pathWithHash","hash","includes","location","replaceState","go","n","nextIndex","lastItemIndex","targetId","Promise","resolve","reject","done","interrupted","clearTimeout","timer","Error","title","document","ref","setTimeout","
|
|
1
|
+
{"version":3,"names":["nanoid","getPathWithoutHash","path","split","createMemoryHistory","index","items","pending","interrupt","forEach","it","cb","history","id","window","state","findIndex","item","get","backIndex","pathWithoutHash","i","push","slice","length","pushState","replace","pathWithHash","hash","includes","location","replaceState","go","n","nextIndex","lastItemIndex","targetId","Promise","resolve","reject","done","interrupted","clearTimeout","timer","Error","title","document","ref","setTimeout","removeEventListener","onPopState","foundIndex","splice","last","pop","addEventListener","listen","listener"],"sourceRoot":"../../src","sources":["createMemoryHistory.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import isEqual from 'fast-deep-equal';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
export function useDeepStableValue(value) {
|
|
6
|
+
const valueRef = React.useRef(value);
|
|
7
|
+
if (!isEqual(valueRef.current, value)) {
|
|
8
|
+
valueRef.current = value;
|
|
9
|
+
}
|
|
10
|
+
return valueRef.current;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useDeepStableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isEqual","React","useDeepStableValue","value","valueRef","useRef","current"],"sourceRoot":"../../src","sources":["useDeepStableValue.tsx"],"mappings":";;AAAA,OAAOA,OAAO,MAAM,iBAAiB;AACrC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,kBAAkBA,CAAIC,KAAQ,EAAK;EACjD,MAAMC,QAAQ,GAAGH,KAAK,CAACI,MAAM,CAACF,KAAK,CAAC;EAEpC,IAAI,CAACH,OAAO,CAACI,QAAQ,CAACE,OAAO,EAAEH,KAAK,CAAC,EAAE;IACrCC,QAAQ,CAACE,OAAO,GAAGH,KAAK;EAC1B;EAEA,OAAOC,QAAQ,CAACE,OAAO;AACzB","ignoreList":[]}
|
|
@@ -1,34 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { getPathFromState, NavigationContainerRefContext, NavigationHelpersContext } from '@react-navigation/core';
|
|
3
|
+
import { CommonActions, getPathFromState, NavigationContainerRefContext, NavigationContext, NavigationFocusedRouteStateContext, NavigationHelpersContext } from '@react-navigation/core';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { Platform } from 'react-native';
|
|
6
|
+
import useLatestCallback from 'use-latest-callback';
|
|
6
7
|
import { LinkingContext } from "./LinkingContext.js";
|
|
8
|
+
import { useDeepStableValue } from "./useDeepStableValue.js";
|
|
9
|
+
const NESTED_KEYS = ['payload', 'params', 'state', 'routes'];
|
|
10
|
+
const NESTED_PARAMS_KEYS = ['params', 'state'];
|
|
11
|
+
const NAVIGATE_ACTION_TYPES = ['NAVIGATE', 'PUSH', 'REPLACE', 'POP_TO', 'JUMP_TO'];
|
|
12
|
+
/**
|
|
13
|
+
* Nested params are tracked as consumed after handling
|
|
14
|
+
* So navigating with same params again won't work
|
|
15
|
+
* This can happen if the action or params are memoized
|
|
16
|
+
* Or component hasn't re-renderd to re-create inline objects
|
|
17
|
+
* So we clone the action and params when necessary before dispatch
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
function clone(value, keys = NESTED_KEYS, clones) {
|
|
21
|
+
if (typeof value !== 'object' || value == null) {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
const existing = clones?.get(value);
|
|
25
|
+
if (existing) {
|
|
26
|
+
return existing;
|
|
27
|
+
}
|
|
28
|
+
const isArray = Array.isArray(value);
|
|
29
|
+
if (keys === NESTED_PARAMS_KEYS && 'screen' in value && typeof value.screen !== 'string' && !('state' in value && typeof value.state === 'object' && value.state != null && 'routes' in value.state && Array.isArray(value.state.routes))) {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
let copy = keys === NESTED_PARAMS_KEYS ? {
|
|
33
|
+
...value
|
|
34
|
+
} : undefined;
|
|
35
|
+
clones ??= new WeakMap();
|
|
36
|
+
clones.set(value, copy ?? value);
|
|
37
|
+
for (const key of isArray ? value.keys() : keys) {
|
|
38
|
+
const nested = Reflect.get(value, key);
|
|
39
|
+
const cloned = clone(nested, key === 'params' ? NESTED_PARAMS_KEYS : NESTED_KEYS, clones);
|
|
40
|
+
if (cloned !== nested) {
|
|
41
|
+
copy ??= isArray ? [...value] : {
|
|
42
|
+
...value
|
|
43
|
+
};
|
|
44
|
+
clones.set(value, copy);
|
|
45
|
+
Reflect.set(copy, key, cloned);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return copy ?? value;
|
|
49
|
+
}
|
|
50
|
+
const getTargetFromAction = (action, screens) => {
|
|
51
|
+
if (action === undefined || screens === undefined) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const {
|
|
55
|
+
payload
|
|
56
|
+
} = action;
|
|
57
|
+
if (!NAVIGATE_ACTION_TYPES.includes(action.type) || payload === undefined || !('name' in payload) || typeof payload.name !== 'string' || !(payload.name in screens)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
screen: payload.name,
|
|
62
|
+
params: 'params' in payload && typeof payload.params === 'object' && payload.params != null ? payload.params : undefined
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
const getStateForParent = (parent, targetState, focusedRouteState) => {
|
|
66
|
+
if (parent === undefined) {
|
|
67
|
+
return targetState;
|
|
68
|
+
}
|
|
69
|
+
if (focusedRouteState === undefined) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const route = focusedRouteState.routes[0];
|
|
73
|
+
const childState = getStateForParent(parent, targetState, route.state);
|
|
74
|
+
if (childState !== undefined) {
|
|
75
|
+
return {
|
|
76
|
+
routes: [{
|
|
77
|
+
...route,
|
|
78
|
+
state: childState
|
|
79
|
+
}]
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (route.name === parent) {
|
|
83
|
+
return targetState;
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
};
|
|
87
|
+
|
|
7
88
|
/**
|
|
8
89
|
* Hook to get props for an anchor tag so it can work with in page navigation.
|
|
9
90
|
*
|
|
91
|
+
* @param props.in Name of the current or parent screen whose navigator contains the target screen.
|
|
10
92
|
* @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
|
|
11
93
|
* @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
|
|
12
94
|
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
13
|
-
* @param props.action Optional action to
|
|
95
|
+
* @param props.action Optional action to override the in-page navigation. The `href` is still derived from `screen`, so this can be used to render a link while dispatching a different action (e.g. a `replace`).
|
|
14
96
|
*/
|
|
15
97
|
export function useLinkProps({
|
|
98
|
+
in: parent,
|
|
16
99
|
screen,
|
|
17
100
|
params,
|
|
18
|
-
|
|
19
|
-
|
|
101
|
+
action,
|
|
102
|
+
...rest
|
|
20
103
|
}) {
|
|
21
104
|
const root = React.use(NavigationContainerRefContext);
|
|
22
|
-
|
|
105
|
+
let navigation = React.use(NavigationContext);
|
|
106
|
+
if (parent != null) {
|
|
107
|
+
navigation = navigation?.getParent(parent);
|
|
108
|
+
} else if (action != null) {
|
|
109
|
+
const helpers = React.use(NavigationHelpersContext);
|
|
110
|
+
|
|
111
|
+
// Handle custom actions in the immediate parent
|
|
112
|
+
navigation = helpers ?? navigation ?? root;
|
|
113
|
+
} else {
|
|
114
|
+
// The ref dispatches in currently focused screen
|
|
115
|
+
// So prefer the top-most navigator if available
|
|
116
|
+
let parent = navigation?.getParent();
|
|
117
|
+
while (parent !== undefined) {
|
|
118
|
+
navigation = parent;
|
|
119
|
+
parent = navigation.getParent();
|
|
120
|
+
}
|
|
121
|
+
navigation = navigation ?? root;
|
|
122
|
+
}
|
|
123
|
+
if (navigation == null) {
|
|
124
|
+
if (parent != null) {
|
|
125
|
+
throw new Error(`Couldn't find a navigation object for '${parent}' in current or any parent screens. Is your component inside the correct screen?`);
|
|
126
|
+
}
|
|
127
|
+
throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
|
|
128
|
+
}
|
|
23
129
|
const {
|
|
24
130
|
options
|
|
25
131
|
} = React.use(LinkingContext);
|
|
26
|
-
const onPress = e => {
|
|
27
|
-
|
|
28
|
-
if (Platform.OS !== 'web' || !e) {
|
|
29
|
-
e?.preventDefault?.();
|
|
30
|
-
shouldHandle = true;
|
|
31
|
-
} else {
|
|
132
|
+
const onPress = useLatestCallback(e => {
|
|
133
|
+
if (Platform.OS === 'web' && e) {
|
|
32
134
|
// ignore clicks with modifier keys
|
|
33
135
|
const hasModifierKey = 'metaKey' in e && e.metaKey || 'altKey' in e && e.altKey || 'ctrlKey' in e && e.ctrlKey || 'shiftKey' in e && e.shiftKey;
|
|
34
136
|
|
|
@@ -36,55 +138,56 @@ export function useLinkProps({
|
|
|
36
138
|
const isLeftClick = 'button' in e ? e.button == null || e.button === 0 : true;
|
|
37
139
|
|
|
38
140
|
// let browser handle "target=_blank" etc.
|
|
39
|
-
const isSelfTarget = e.currentTarget && 'target' in e.currentTarget ? [undefined, null, '', '
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
141
|
+
const isSelfTarget = e.currentTarget && 'target' in e.currentTarget ? [undefined, null, '', '_self'].includes(e.currentTarget.target) : true;
|
|
142
|
+
|
|
143
|
+
// let the browser handle the interaction
|
|
144
|
+
if (hasModifierKey || !isLeftClick || !isSelfTarget) {
|
|
145
|
+
return;
|
|
43
146
|
}
|
|
44
147
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");
|
|
53
|
-
}
|
|
54
|
-
} else {
|
|
55
|
-
// @ts-expect-error This is already type-checked by the prop types
|
|
56
|
-
navigation?.navigate(screen, params);
|
|
148
|
+
e?.preventDefault();
|
|
149
|
+
let cloned;
|
|
150
|
+
if (action != null) {
|
|
151
|
+
cloned = clone(action);
|
|
152
|
+
} else {
|
|
153
|
+
if (screen == null) {
|
|
154
|
+
throw new Error("Couldn't find a screen to navigate to. Make sure to provide a screen name.");
|
|
57
155
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
case 'REPLACE':
|
|
67
|
-
case 'POP_TO':
|
|
68
|
-
case 'JUMP_TO':
|
|
69
|
-
{
|
|
70
|
-
if (action.payload != null && 'name' in action.payload && typeof action.payload.name === 'string' && action.payload.name in options.config.screens) {
|
|
71
|
-
screen = action.payload.name;
|
|
72
|
-
if ('params' in action.payload && typeof action.payload.params === 'object' && action.payload.params != null) {
|
|
73
|
-
// @ts-expect-error this is fine 🔥
|
|
74
|
-
params = action.payload.params;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
156
|
+
cloned = clone(CommonActions.navigate(screen,
|
|
157
|
+
// @ts-expect-error This is already type-checked by the prop types
|
|
158
|
+
params));
|
|
159
|
+
if (parent != null) {
|
|
160
|
+
cloned = {
|
|
161
|
+
...cloned,
|
|
162
|
+
target: navigation.getState()?.key
|
|
163
|
+
};
|
|
78
164
|
}
|
|
79
165
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
166
|
+
navigation.dispatch(cloned);
|
|
167
|
+
});
|
|
168
|
+
const target = useDeepStableValue(Platform.OS === 'web' ? typeof screen === 'string' ? {
|
|
169
|
+
screen,
|
|
170
|
+
params: typeof params === 'object' && params != null ? params : undefined
|
|
171
|
+
} : getTargetFromAction(action, options?.config?.screens) : undefined);
|
|
172
|
+
const state = Platform.OS === 'web' && rest.href == null && target != null ? React.use(NavigationFocusedRouteStateContext) : undefined;
|
|
173
|
+
const href = React.useMemo(() => {
|
|
174
|
+
if (Platform.OS !== 'web' || rest.href != null || target == null) {
|
|
175
|
+
return rest.href;
|
|
176
|
+
}
|
|
177
|
+
const stateForParent = getStateForParent(parent, {
|
|
83
178
|
routes: [{
|
|
84
|
-
name: screen,
|
|
85
|
-
params:
|
|
179
|
+
name: target.screen,
|
|
180
|
+
params: target.params
|
|
86
181
|
}]
|
|
87
|
-
},
|
|
182
|
+
}, state);
|
|
183
|
+
if (stateForParent) {
|
|
184
|
+
const getPath = options?.getPathFromState ?? getPathFromState;
|
|
185
|
+
return getPath(stateForParent, options?.config);
|
|
186
|
+
}
|
|
187
|
+
return undefined;
|
|
188
|
+
}, [rest.href, target, parent, state, options?.getPathFromState, options?.config]);
|
|
189
|
+
return {
|
|
190
|
+
href,
|
|
88
191
|
role: 'link',
|
|
89
192
|
onPress
|
|
90
193
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","
|
|
1
|
+
{"version":3,"names":["CommonActions","getPathFromState","NavigationContainerRefContext","NavigationContext","NavigationFocusedRouteStateContext","NavigationHelpersContext","React","Platform","useLatestCallback","LinkingContext","useDeepStableValue","NESTED_KEYS","NESTED_PARAMS_KEYS","NAVIGATE_ACTION_TYPES","clone","value","keys","clones","existing","get","isArray","Array","screen","state","routes","copy","undefined","WeakMap","set","key","nested","Reflect","cloned","getTargetFromAction","action","screens","payload","includes","type","name","params","getStateForParent","parent","targetState","focusedRouteState","route","childState","useLinkProps","in","rest","root","use","navigation","getParent","helpers","Error","options","onPress","e","OS","hasModifierKey","metaKey","altKey","ctrlKey","shiftKey","isLeftClick","button","isSelfTarget","currentTarget","target","preventDefault","navigate","getState","dispatch","config","href","useMemo","stateForParent","getPath","role"],"sourceRoot":"../../src","sources":["useLinkProps.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,22 +2,24 @@ import { type RootParamList } from '@react-navigation/core';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { type GestureResponderEvent, Text, type TextProps } from 'react-native';
|
|
4
4
|
import { type LinkProps } from './useLinkProps.js';
|
|
5
|
-
type
|
|
5
|
+
type PressEvent = React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent;
|
|
6
|
+
type LinkBaseProps = Omit<TextProps, 'disabled'> & {
|
|
6
7
|
target?: string;
|
|
7
|
-
onPress?: (e:
|
|
8
|
-
disabled?: boolean |
|
|
8
|
+
onPress?: (e: PressEvent) => void;
|
|
9
|
+
disabled?: boolean | undefined;
|
|
9
10
|
children: React.ReactNode;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Component to render link to another screen using a path.
|
|
13
14
|
* Uses an anchor tag on the web.
|
|
14
15
|
*
|
|
16
|
+
* @param props.in Name of the current or parent screen whose navigator contains the target screen.
|
|
15
17
|
* @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
|
|
16
18
|
* @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
|
|
17
19
|
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
18
|
-
* @param props.action Optional action to
|
|
20
|
+
* @param props.action Optional action to override the in-page navigation. The `href` is still derived from `screen`, so this can be used to render a link while dispatching a different action (e.g. a `replace`).
|
|
19
21
|
* @param props.children Child elements to render the content.
|
|
20
22
|
*/
|
|
21
|
-
export declare function Link<
|
|
23
|
+
export declare function Link<ParamList extends {} = RootParamList, RouteName extends Extract<keyof ParamList, string> = Extract<keyof ParamList, string>>({ in: parent, screen, params, action, href, style, target, ...rest }: LinkProps<NoInfer<ParamList>, RouteName> & LinkBaseProps): React.CElement<TextProps, Text>;
|
|
22
24
|
export {};
|
|
23
25
|
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,KAAK,qBAAqB,EAE1B,IAAI,EACJ,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,mBAAgB,CAAC;AAE9D,KAAK,
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,KAAK,qBAAqB,EAE1B,IAAI,EACJ,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,mBAAgB,CAAC;AAE9D,KAAK,UAAU,GACX,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC/C,qBAAqB,CAAC;AAE1B,KAAK,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAClB,SAAS,SAAS,EAAE,GAAG,aAAa,EACpC,SAAS,SAAS,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAC1D,MAAM,SAAS,EACf,MAAM,CACP,EACD,EACA,EAAE,EAAE,MAAM,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,GAAG,IAAI,EACR,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,aAAa,mCA4C1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../../src/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,eAAe,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,wBAAgB,mBAAmB;oBAmBlB,MAAM;eAcR,MAAM;wBAIG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;0BAmBd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;6BAoBrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;UAwC3D,MAAM;
|
|
1
|
+
{"version":3,"file":"createMemoryHistory.d.ts","sourceRoot":"","sources":["../../../src/createMemoryHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,aAAa,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,eAAe,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,wBAAgB,mBAAmB;oBAmBlB,MAAM;eAcR,MAAM;wBAIG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;0BAmBd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;6BAoBrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE;UAwC3D,MAAM;qBAkGK,MAAM,IAAI;EAqB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNavigationCornerInsetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/native/ReactNavigationCornerInsetViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,GAAG,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;CACpD;AAED,UAAU,cAAc;IAGtB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,eAAO,MAAM,QAAQ,gBAEnB,CAAC
|
|
1
|
+
{"version":3,"file":"ReactNavigationCornerInsetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/native/ReactNavigationCornerInsetViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,GAAG,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;CACpD;AAED,UAAU,cAAc;IAGtB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,eAAO,MAAM,QAAQ,gBAEnB,CAAC;;AAEH,wBAKE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeepStableValue.d.ts","sourceRoot":"","sources":["../../../src/useDeepStableValue.tsx"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQjD"}
|
|
@@ -1,32 +1,56 @@
|
|
|
1
|
-
import { type NavigationAction, type RootParamList } from '@react-navigation/core';
|
|
1
|
+
import { type NavigationAction, type NavigatorScreenParams, type ParamListForNavigator, type RootParamList } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { type GestureResponderEvent } from 'react-native';
|
|
4
|
-
|
|
4
|
+
type LinkScreenTargetProps<ParamList extends {}, RouteName extends Extract<keyof ParamList, string> = Extract<keyof ParamList, string>> = RouteName extends unknown ? undefined extends ParamList[RouteName] ? {
|
|
5
5
|
href?: string | undefined;
|
|
6
6
|
action?: NavigationAction | undefined;
|
|
7
|
-
|
|
7
|
+
in?: Extract<keyof ParamList, string> | undefined;
|
|
8
8
|
screen: RouteName;
|
|
9
9
|
params?: ParamList[RouteName] | undefined;
|
|
10
10
|
} : {
|
|
11
|
+
href?: string | undefined;
|
|
12
|
+
action?: NavigationAction | undefined;
|
|
13
|
+
in?: Extract<keyof ParamList, string> | undefined;
|
|
14
|
+
screen: RouteName;
|
|
15
|
+
params: ParamList[RouteName];
|
|
16
|
+
} : never;
|
|
17
|
+
type LinkScreenTargetPropsWithIn<ParamList extends {}, RouteName extends Extract<keyof ParamList, string> = Extract<keyof ParamList, string>> = RouteName extends unknown ? undefined extends ParamList[RouteName] ? {
|
|
18
|
+
href?: string | undefined;
|
|
19
|
+
action?: NavigationAction | undefined;
|
|
20
|
+
in: Extract<keyof ParamList, string>;
|
|
21
|
+
screen: RouteName;
|
|
22
|
+
params?: ParamList[RouteName] | undefined;
|
|
23
|
+
} : {
|
|
24
|
+
href?: string | undefined;
|
|
25
|
+
action?: NavigationAction | undefined;
|
|
26
|
+
in: Extract<keyof ParamList, string>;
|
|
11
27
|
screen: RouteName;
|
|
12
28
|
params: ParamList[RouteName];
|
|
13
|
-
} : never
|
|
29
|
+
} : never;
|
|
30
|
+
type LinkPropsWithInForParams<Params> = [Params] extends [never] ? never : [Params] extends [NavigatorScreenParams<infer Navigator>] ? ParamListForNavigator<Navigator> extends infer NestedParamList extends {} ? LinkScreenTargetPropsWithIn<NestedParamList> | LinkPropsWithIn<NestedParamList> : never : never;
|
|
31
|
+
type LinkPropsWithIn<ParamList extends {}> = string extends keyof ParamList ? never : {
|
|
32
|
+
[RouteName in keyof ParamList]: LinkPropsWithInForParams<Exclude<ParamList[RouteName], undefined>>;
|
|
33
|
+
}[keyof ParamList];
|
|
34
|
+
export type LinkProps<ParamList extends {} = RootParamList, RouteName extends Extract<keyof ParamList, string> = Extract<keyof ParamList, string>> = LinkScreenTargetProps<ParamList, RouteName> | LinkPropsWithIn<ParamList> | {
|
|
14
35
|
href?: string | undefined;
|
|
15
36
|
action: NavigationAction;
|
|
37
|
+
in?: undefined;
|
|
16
38
|
screen?: undefined;
|
|
17
39
|
params?: undefined;
|
|
18
40
|
};
|
|
19
41
|
/**
|
|
20
42
|
* Hook to get props for an anchor tag so it can work with in page navigation.
|
|
21
43
|
*
|
|
44
|
+
* @param props.in Name of the current or parent screen whose navigator contains the target screen.
|
|
22
45
|
* @param props.screen Name of the screen to navigate to (e.g. `'Feeds'`).
|
|
23
46
|
* @param props.params Params to pass to the screen to navigate to (e.g. `{ sort: 'hot' }`).
|
|
24
47
|
* @param props.href Optional absolute path to use for the href (e.g. `/feeds/hot`).
|
|
25
|
-
* @param props.action Optional action to
|
|
48
|
+
* @param props.action Optional action to override the in-page navigation. The `href` is still derived from `screen`, so this can be used to render a link while dispatching a different action (e.g. a `replace`).
|
|
26
49
|
*/
|
|
27
|
-
export declare function useLinkProps<
|
|
28
|
-
href: string | undefined;
|
|
50
|
+
export declare function useLinkProps<ParamList extends {} = RootParamList, RouteName extends Extract<keyof ParamList, string> = Extract<keyof ParamList, string>>({ in: parent, screen, params, action, ...rest }: LinkProps<NoInfer<ParamList>, RouteName>): {
|
|
51
|
+
href: string | LinkScreenTargetProps<NoInfer<ParamList>, RouteName>["href"] | undefined;
|
|
29
52
|
role: "link";
|
|
30
53
|
onPress: (e?: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent) => void;
|
|
31
54
|
};
|
|
55
|
+
export {};
|
|
32
56
|
//# sourceMappingURL=useLinkProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinkProps.d.ts","sourceRoot":"","sources":["../../../src/useLinkProps.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useLinkProps.d.ts","sourceRoot":"","sources":["../../../src/useLinkProps.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/native",
|
|
3
3
|
"description": "React Native integration for React Navigation",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.36",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
7
7
|
"react-navigation",
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
"clean": "del lib"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@react-navigation/core": "^8.0.0-alpha.
|
|
65
|
+
"@react-navigation/core": "^8.0.0-alpha.27",
|
|
66
66
|
"escape-string-regexp": "^5.0.0",
|
|
67
67
|
"fast-deep-equal": "^3.1.3",
|
|
68
68
|
"nanoid": "^5.1.11",
|
|
69
69
|
"sf-symbols-typescript": "^2.2.0",
|
|
70
|
-
"standard-navigation": "^0.0.
|
|
70
|
+
"standard-navigation": "^0.0.8",
|
|
71
71
|
"use-latest-callback": "^0.3.4"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
@@ -76,9 +76,9 @@
|
|
|
76
76
|
"@types/react": "~19.2.17",
|
|
77
77
|
"@types/react-dom": "~19.2.3",
|
|
78
78
|
"del-cli": "^7.0.0",
|
|
79
|
-
"react": "19.2.
|
|
80
|
-
"react-dom": "19.2.
|
|
81
|
-
"react-native": "0.
|
|
79
|
+
"react": "19.2.3",
|
|
80
|
+
"react-dom": "19.2.3",
|
|
81
|
+
"react-native": "0.85.3",
|
|
82
82
|
"react-native-builder-bob": "^0.43.0",
|
|
83
83
|
"test-renderer": "1.2.0",
|
|
84
84
|
"typescript": "^6.0.3"
|
|
@@ -127,5 +127,5 @@
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
},
|
|
130
|
-
"gitHead": "
|
|
130
|
+
"gitHead": "0a69dc7df922ebec7f6e60a6f4eac753545e3977"
|
|
131
131
|
}
|