@react-navigation/native 7.2.6 → 7.3.0
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/createStandardNavigationFactories.js +97 -0
- package/lib/module/createStandardNavigationFactories.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useMemoArray.js +25 -0
- package/lib/module/useMemoArray.js.map +1 -0
- package/lib/typescript/src/Link.d.ts +1 -1
- package/lib/typescript/src/Link.d.ts.map +1 -1
- package/lib/typescript/src/LinkingContext.d.ts +1 -1
- package/lib/typescript/src/LinkingContext.d.ts.map +1 -1
- package/lib/typescript/src/LocaleDirContext.d.ts +1 -1
- package/lib/typescript/src/LocaleDirContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationContainer.d.ts +1 -1
- package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/ServerContainer.d.ts +2 -2
- package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
- package/lib/typescript/src/createStandardNavigationFactories.d.ts +47 -0
- package/lib/typescript/src/createStandardNavigationFactories.d.ts.map +1 -0
- package/lib/typescript/src/createStaticNavigation.d.ts +2 -2
- package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +17 -16
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/useDocumentTitle.d.ts +1 -1
- package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -1
- package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useLinking.d.ts +1 -1
- package/lib/typescript/src/useLinking.d.ts.map +1 -1
- package/lib/typescript/src/useLinking.native.d.ts +1 -1
- package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
- package/lib/typescript/src/useLocale.d.ts +1 -1
- package/lib/typescript/src/useMemoArray.d.ts +2 -0
- package/lib/typescript/src/useMemoArray.d.ts.map +1 -0
- package/package.json +5 -4
- package/src/createStandardNavigationFactories.tsx +294 -0
- package/src/index.tsx +5 -0
- package/src/useMemoArray.tsx +41 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { CommonActions, createNavigatorFactory, createScreenFactory, useNavigationBuilder } from '@react-navigation/core';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { useBuildHref } from "./useLinkBuilder.js";
|
|
6
|
+
import { useMemoArray } from "./useMemoArray.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export function createStandardNavigationFactories(navigator, router, mapper) {
|
|
9
|
+
const {
|
|
10
|
+
type,
|
|
11
|
+
version,
|
|
12
|
+
NavigatorContent
|
|
13
|
+
} = navigator;
|
|
14
|
+
if (type !== 'standard') {
|
|
15
|
+
throw new Error(`createStandardNavigationFactories only works with standard navigator objects, but got navigator of ${typeof type === 'string' ? `type "${type}".` : 'unknown type.'}`);
|
|
16
|
+
}
|
|
17
|
+
if (version !== 1) {
|
|
18
|
+
throw new Error(`createStandardNavigationFactories only works with version 1 of standard navigator objects, but got version ${version}.`);
|
|
19
|
+
}
|
|
20
|
+
function StandardNavigationNavigator(props) {
|
|
21
|
+
const builder = useNavigationBuilder(router, props);
|
|
22
|
+
const buildHref = useBuildHref();
|
|
23
|
+
const routes = useMemoArray(('preloadedRoutes' in builder.state && Array.isArray(builder.state.preloadedRoutes) ? builder.state.routes.concat(builder.state.preloadedRoutes) : builder.state.routes).map(route => {
|
|
24
|
+
const href = buildHref(route.name, route.params);
|
|
25
|
+
return [{
|
|
26
|
+
key: route.key,
|
|
27
|
+
name: route.name,
|
|
28
|
+
params: route.params,
|
|
29
|
+
href
|
|
30
|
+
}, [route.key, route.name, route.params, href]];
|
|
31
|
+
}));
|
|
32
|
+
const state = React.useMemo(() => ({
|
|
33
|
+
index: builder.state.index,
|
|
34
|
+
routes
|
|
35
|
+
}), [builder.state.index, routes]);
|
|
36
|
+
const descriptors = {};
|
|
37
|
+
for (const route of state.routes) {
|
|
38
|
+
const descriptor = builder.descriptors[route.key] ?? builder.describe(route, true);
|
|
39
|
+
descriptors[route.key] = {
|
|
40
|
+
options: descriptor.options,
|
|
41
|
+
render: descriptor.render
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const actions = React.useMemo(() => ({
|
|
45
|
+
navigate(name, params) {
|
|
46
|
+
builder.navigation.dispatch({
|
|
47
|
+
...CommonActions.navigate(name, params),
|
|
48
|
+
target: builder.state.key
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
back() {
|
|
52
|
+
builder.navigation.goBack();
|
|
53
|
+
}
|
|
54
|
+
}), [builder.navigation, builder.state.key]);
|
|
55
|
+
const emitter = React.useMemo(() => ({
|
|
56
|
+
// @ts-expect-error - they are compatible
|
|
57
|
+
emit: builder.navigation.emit
|
|
58
|
+
}), [builder.navigation]);
|
|
59
|
+
const mapped = mapper?.({
|
|
60
|
+
state: builder.state,
|
|
61
|
+
navigation: builder.navigation
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Omit props used by useNavigationBuilder and routers internally
|
|
65
|
+
const {
|
|
66
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
67
|
+
children,
|
|
68
|
+
id,
|
|
69
|
+
initialRouteName,
|
|
70
|
+
layout,
|
|
71
|
+
screenLayout,
|
|
72
|
+
screenListeners,
|
|
73
|
+
screenOptions,
|
|
74
|
+
UNSTABLE_routeNamesChangeBehavior,
|
|
75
|
+
UNSTABLE_router,
|
|
76
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
77
|
+
...rest
|
|
78
|
+
} = props;
|
|
79
|
+
return /*#__PURE__*/_jsx(builder.NavigationContent, {
|
|
80
|
+
children: /*#__PURE__*/_jsx(NavigatorContent, {
|
|
81
|
+
...rest,
|
|
82
|
+
...mapped,
|
|
83
|
+
state: state,
|
|
84
|
+
descriptors: descriptors,
|
|
85
|
+
actions: actions,
|
|
86
|
+
emitter: emitter
|
|
87
|
+
})
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const createNavigator = createNavigatorFactory(StandardNavigationNavigator);
|
|
91
|
+
const createScreen = createScreenFactory();
|
|
92
|
+
return {
|
|
93
|
+
createNavigator,
|
|
94
|
+
createScreen
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=createStandardNavigationFactories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CommonActions","createNavigatorFactory","createScreenFactory","useNavigationBuilder","React","useBuildHref","useMemoArray","jsx","_jsx","createStandardNavigationFactories","navigator","router","mapper","type","version","NavigatorContent","Error","StandardNavigationNavigator","props","builder","buildHref","routes","state","Array","isArray","preloadedRoutes","concat","map","route","href","name","params","key","useMemo","index","descriptors","descriptor","describe","options","render","actions","navigate","navigation","dispatch","target","back","goBack","emitter","emit","mapped","children","id","initialRouteName","layout","screenLayout","screenListeners","screenOptions","UNSTABLE_routeNamesChangeBehavior","UNSTABLE_router","rest","NavigationContent","createNavigator","createScreen"],"sourceRoot":"../../src","sources":["createStandardNavigationFactories.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
export { createStandardNavigationFactories } from "./createStandardNavigationFactories.js";
|
|
3
4
|
export { createStaticNavigation } from "./createStaticNavigation.js";
|
|
4
5
|
export { Link } from "./Link.js";
|
|
5
6
|
export { LinkingContext } from "./LinkingContext.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createStaticNavigation","Link","LinkingContext","LocaleDirContext","NavigationContainer","ServerContainer","DarkTheme","DefaultTheme","UnhandledLinkingContext","UNSTABLE_UnhandledLinkingContext","useLinkBuilder","useLinkProps","useLinkTo","useLocale","useRoutePath","useScrollToTop"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["createStandardNavigationFactories","createStaticNavigation","Link","LinkingContext","LocaleDirContext","NavigationContainer","ServerContainer","DarkTheme","DefaultTheme","UnhandledLinkingContext","UNSTABLE_UnhandledLinkingContext","useLinkBuilder","useLinkProps","useLinkTo","useLocale","useRoutePath","useScrollToTop"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SACEA,iCAAiC,QAG5B,wCAAqC;AAC5C,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,SAAS,QAAQ,wBAAqB;AAC/C,SAASC,YAAY,QAAQ,2BAAwB;AACrD,cAAc,YAAS;AACvB,SAASC,uBAAuB,IAAIC,gCAAgC,QAAQ,8BAA2B;AACvG,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAAyBC,YAAY,QAAQ,mBAAgB;AAC7D,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,cAAc,QAAQ,qBAAkB;AACjD,cAAc,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export function useMemoArray(entries) {
|
|
5
|
+
const previousRef = React.useRef(undefined);
|
|
6
|
+
const previous = previousRef.current;
|
|
7
|
+
const next = entries.map(([item, deps], index) => {
|
|
8
|
+
const previousEntry = previous?.entries[index];
|
|
9
|
+
const depsEqual = previousEntry && previousEntry.deps.length === deps.length && previousEntry.deps.every((it, index) => Object.is(it, deps[index]));
|
|
10
|
+
return depsEqual ? previousEntry : {
|
|
11
|
+
item,
|
|
12
|
+
deps
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
if (previous && previous.entries.length === next.length && next.every((entry, index) => entry === previous.entries[index])) {
|
|
16
|
+
return previous.items;
|
|
17
|
+
}
|
|
18
|
+
const items = next.map(entry => entry.item);
|
|
19
|
+
previousRef.current = {
|
|
20
|
+
entries: next,
|
|
21
|
+
items
|
|
22
|
+
};
|
|
23
|
+
return items;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=useMemoArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemoArray","entries","previousRef","useRef","undefined","previous","current","next","map","item","deps","index","previousEntry","depsEqual","length","every","it","Object","is","entry","items"],"sourceRoot":"../../src","sources":["useMemoArray.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAC1BC,OAA8C,EACzC;EACL,MAAMC,WAAW,GAAGH,KAAK,CAACI,MAAM,CAM9BC,SAAS,CAAC;EAEZ,MAAMC,QAAQ,GAAGH,WAAW,CAACI,OAAO;EACpC,MAAMC,IAAI,GAAGN,OAAO,CAACO,GAAG,CAAC,CAAC,CAACC,IAAI,EAAEC,IAAI,CAAC,EAAEC,KAAK,KAAK;IAChD,MAAMC,aAAa,GAAGP,QAAQ,EAAEJ,OAAO,CAACU,KAAK,CAAC;IAC9C,MAAME,SAAS,GACbD,aAAa,IACbA,aAAa,CAACF,IAAI,CAACI,MAAM,KAAKJ,IAAI,CAACI,MAAM,IACzCF,aAAa,CAACF,IAAI,CAACK,KAAK,CAAC,CAACC,EAAE,EAAEL,KAAK,KAAKM,MAAM,CAACC,EAAE,CAACF,EAAE,EAAEN,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IAErE,OAAOE,SAAS,GAAGD,aAAa,GAAG;MAAEH,IAAI;MAAEC;IAAK,CAAC;EACnD,CAAC,CAAC;EAEF,IACEL,QAAQ,IACRA,QAAQ,CAACJ,OAAO,CAACa,MAAM,KAAKP,IAAI,CAACO,MAAM,IACvCP,IAAI,CAACQ,KAAK,CAAC,CAACI,KAAK,EAAER,KAAK,KAAKQ,KAAK,KAAKd,QAAQ,CAACJ,OAAO,CAACU,KAAK,CAAC,CAAC,EAC/D;IACA,OAAON,QAAQ,CAACe,KAAK;EACvB;EAEA,MAAMA,KAAK,GAAGb,IAAI,CAACC,GAAG,CAAEW,KAAK,IAAKA,KAAK,CAACV,IAAI,CAAC;EAE7CP,WAAW,CAACI,OAAO,GAAG;IACpBL,OAAO,EAAEM,IAAI;IACba;EACF,CAAC;EAED,OAAOA,KAAK;AACd","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type GestureResponderEvent, Text, type TextProps } from 'react-native';
|
|
3
|
-
import { type LinkProps } from './useLinkProps';
|
|
3
|
+
import { type LinkProps } from './useLinkProps.js';
|
|
4
4
|
type Props<ParamList extends ReactNavigation.RootParamList> = LinkProps<ParamList> & Omit<TextProps, 'disabled'> & {
|
|
5
5
|
target?: string;
|
|
6
6
|
onPress?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AACA,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,
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/Link.tsx"],"names":[],"mappings":"AACA,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,KAAK,CAAC,SAAS,SAAS,eAAe,CAAC,aAAa,IACxD,SAAS,CAAC,SAAS,CAAC,GAClB,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CACR,CAAC,EACG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC/C,qBAAqB,KACtB,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEN;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,SAAS,SAAS,eAAe,CAAC,aAAa,EAAE,EACpE,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,GAAG,IAAI,EACR,EAAE,KAAK,CAAC,SAAS,CAAC,mCA2BlB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ParamListBase } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { LinkingOptions } from './types';
|
|
3
|
+
import type { LinkingOptions } from './types.js';
|
|
4
4
|
export declare const LinkingContext: React.Context<{
|
|
5
5
|
options?: LinkingOptions<ParamListBase>;
|
|
6
6
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkingContext.d.ts","sourceRoot":"","sources":["../../../src/LinkingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LinkingContext.d.ts","sourceRoot":"","sources":["../../../src/LinkingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAI9C,eAAO,MAAM,cAAc;cACf,cAAc,CAAC,aAAa,CAAC;EAKvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleDirContext.d.ts","sourceRoot":"","sources":["../../../src/LocaleDirContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LocaleDirContext.d.ts","sourceRoot":"","sources":["../../../src/LocaleDirContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAS,CAAC;AAE/C,eAAO,MAAM,gBAAgB,gCAA8C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type NavigationContainerProps, type NavigationContainerRef } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { DocumentTitleOptions, LinkingOptions, LocaleDirection } from './types';
|
|
3
|
+
import type { DocumentTitleOptions, LinkingOptions, LocaleDirection } from './types.js';
|
|
4
4
|
declare global {
|
|
5
5
|
var REACT_NAVIGATION_DEVTOOLS: WeakMap<NavigationContainerRef<any>, {
|
|
6
6
|
readonly linking: LinkingOptions<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAI5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"NavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAI5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EAChB,MAAM,YAAS,CAAC;AAMjB,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,yBAAyB,EAAE,OAAO,CACpC,sBAAsB,CAAC,GAAG,CAAC,EAC3B;QAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;KAAE,CAC1C,CAAC;CACH;AAID,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D;;;;OAIG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAC;AAsFF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAE3B,CAAC,aAAa,SAAS,EAAE,GAAG,eAAe,CAAC,aAAa,EAC5D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;CACxD,KACE,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type ServerContextType } from './ServerContext';
|
|
3
|
-
import type { ServerContainerRef } from './types';
|
|
2
|
+
import { type ServerContextType } from './ServerContext.js';
|
|
3
|
+
import type { ServerContainerRef } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Container component for server rendering.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerContainer.d.ts","sourceRoot":"","sources":["../../../src/ServerContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ServerContainer.d.ts","sourceRoot":"","sources":["../../../src/ServerContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,oBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAS,CAAC;AAMlD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;cAVhB,KAAK,CAAC,SAAS;4CAiDzB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type DefaultRouterOptions, type EventMapBase, type NavigationAction, type NavigationProp, type NavigatorTypeBagBase, type ParamListBase, type RouterFactory, type StaticConfig, type StaticParamList, type StaticScreenFactory, type TypedNavigator } from '@react-navigation/core';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import type { createStandardNavigator } from 'standard-navigation';
|
|
4
|
+
type StandardEventMap<EventMap extends EventMapBase> = {
|
|
5
|
+
[EventName in keyof EventMap]: {
|
|
6
|
+
data: EventMap[EventName] extends {
|
|
7
|
+
data?: infer Data;
|
|
8
|
+
} ? Data extends object | undefined ? Data : object | undefined : undefined;
|
|
9
|
+
canPreventDefault: EventMap[EventName] extends {
|
|
10
|
+
canPreventDefault: true;
|
|
11
|
+
} ? true : false;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
type ActionHelpersOf<T> = T extends Record<string, (...args: never[]) => unknown> ? T : {};
|
|
15
|
+
type StandardNavigationTypeBagFor<TypeBag extends StandardNavigationTypeBagBase, ParamList extends ParamListBase, NavigatorID extends string | undefined = string | undefined> = TypeBag & {
|
|
16
|
+
ParamList: ParamList;
|
|
17
|
+
NavigatorID: NavigatorID;
|
|
18
|
+
};
|
|
19
|
+
type StandardNavigation<TypeBag extends StandardNavigationTypeBagBase> = StandardNavigationTypeBagFor<TypeBag, ParamListBase>['NavigationList'][keyof StandardNavigationTypeBagFor<TypeBag, ParamListBase>['NavigationList']];
|
|
20
|
+
type StandardNavigationPropsMapper<TypeBag extends StandardNavigationTypeBagBase, NavigatorProps extends object> = (props: {
|
|
21
|
+
state: StandardNavigationTypeBagFor<TypeBag, ParamListBase>['State'];
|
|
22
|
+
navigation: StandardNavigation<TypeBag>;
|
|
23
|
+
}) => Partial<NavigatorProps>;
|
|
24
|
+
type StandardNavigationDefaultBag<TypeBag extends StandardNavigationTypeBagBase> = StandardNavigationTypeBagFor<TypeBag, ParamListBase, string | undefined>;
|
|
25
|
+
type StandardNavigationFactories<TypeBag extends StandardNavigationTypeBagBase> = {
|
|
26
|
+
createNavigator: StandardNavigationCreateNavigator<TypeBag>;
|
|
27
|
+
createScreen: StaticScreenFactory<StandardNavigationDefaultBag<TypeBag>>;
|
|
28
|
+
};
|
|
29
|
+
export type StandardNavigationCreateNavigator<TypeBag extends StandardNavigationTypeBagBase> = {
|
|
30
|
+
<const ParamList extends ParamListBase, const NavigatorID extends string | undefined = string | undefined>(): TypedNavigator<StandardNavigationTypeBagFor<TypeBag, ParamList, NavigatorID>, undefined>;
|
|
31
|
+
<const Config extends StaticConfig<StandardNavigationDefaultBag<TypeBag>>>(config: Config & StaticConfig<StandardNavigationDefaultBag<TypeBag>>): TypedNavigator<StandardNavigationTypeBagFor<TypeBag, StaticParamList<{
|
|
32
|
+
config: Config;
|
|
33
|
+
}> & ParamListBase, string | undefined>, Config>;
|
|
34
|
+
};
|
|
35
|
+
export interface StandardNavigationTypeBagBase extends NavigatorTypeBagBase {
|
|
36
|
+
ActionHelpers: {};
|
|
37
|
+
ScreenOptions: {};
|
|
38
|
+
EventMap: EventMapBase;
|
|
39
|
+
RouterOptions: DefaultRouterOptions;
|
|
40
|
+
NavigationList: {
|
|
41
|
+
[RouteName in keyof this['ParamList']]: NavigationProp<this['ParamList'], RouteName, this['NavigatorID'], this['State'], this['ScreenOptions'], this['EventMap']> & ActionHelpersOf<this['ActionHelpers']>;
|
|
42
|
+
};
|
|
43
|
+
Navigator: React.ComponentType<{}>;
|
|
44
|
+
}
|
|
45
|
+
export declare function createStandardNavigationFactories<TypeBag extends StandardNavigationTypeBagBase, NavigatorProps extends object = {}>(navigator: ReturnType<typeof createStandardNavigator<TypeBag['ScreenOptions'], StandardEventMap<TypeBag['EventMap']>, NavigatorProps>>, router: RouterFactory<StandardNavigationTypeBagFor<TypeBag, ParamListBase>['State'], NavigationAction, TypeBag['RouterOptions']>, mapper?: StandardNavigationPropsMapper<TypeBag, NavigatorProps>): StandardNavigationFactories<TypeBag>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=createStandardNavigationFactories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStandardNavigationFactories.d.ts","sourceRoot":"","sources":["../../../src/createStandardNavigationFactories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type NavigationContainerRef, type ParamListBase, type StaticNavigation } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { NavigationContainer } from './NavigationContainer';
|
|
4
|
-
import type { LinkingOptions } from './types';
|
|
3
|
+
import { NavigationContainer } from './NavigationContainer.js';
|
|
4
|
+
import type { LinkingOptions } from './types.js';
|
|
5
5
|
type Props = Omit<React.ComponentProps<typeof NavigationContainer>, 'linking' | 'children'> & {
|
|
6
6
|
/**
|
|
7
7
|
* Options for deep linking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/createStaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createStaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/createStaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,KAAK,GAAG,IAAI,CACf,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,EAChD,SAAS,GAAG,UAAU,CACvB,GAAG;IACF;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;QACpE;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAChC;;WAEG;QACH,MAAM,CAAC,EAAE,IAAI,CACX,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,EACpD,SAAS,CACV,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,oHA8D3E"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
1
|
+
export { createStandardNavigationFactories, type StandardNavigationCreateNavigator, type StandardNavigationTypeBagBase, } from './createStandardNavigationFactories.js';
|
|
2
|
+
export { createStaticNavigation } from './createStaticNavigation.js';
|
|
3
|
+
export { Link } from './Link.js';
|
|
4
|
+
export { LinkingContext } from './LinkingContext.js';
|
|
5
|
+
export { LocaleDirContext } from './LocaleDirContext.js';
|
|
6
|
+
export { NavigationContainer } from './NavigationContainer.js';
|
|
7
|
+
export { ServerContainer } from './ServerContainer.js';
|
|
8
|
+
export { DarkTheme } from './theming/DarkTheme.js';
|
|
9
|
+
export { DefaultTheme } from './theming/DefaultTheme.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
export { UnhandledLinkingContext as UNSTABLE_UnhandledLinkingContext } from './UnhandledLinkingContext.js';
|
|
12
|
+
export { useLinkBuilder } from './useLinkBuilder.js';
|
|
13
|
+
export { type LinkProps, useLinkProps } from './useLinkProps.js';
|
|
14
|
+
export { useLinkTo } from './useLinkTo.js';
|
|
15
|
+
export { useLocale } from './useLocale.js';
|
|
16
|
+
export { useRoutePath } from './useRoutePath.js';
|
|
17
|
+
export { useScrollToTop } from './useScrollToTop.js';
|
|
17
18
|
export * from '@react-navigation/core';
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,KAAK,iCAAiC,EACtC,KAAK,6BAA6B,GACnC,MAAM,wCAAqC,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA0B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAAwB,CAAC;AACtD,cAAc,YAAS,CAAC;AACxB,OAAO,EAAE,uBAAuB,IAAI,gCAAgC,EAAE,MAAM,8BAA2B,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NavigationContainerRef, ParamListBase } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { DocumentTitleOptions } from './types';
|
|
3
|
+
import type { DocumentTitleOptions } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Set the document title for the active screen
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentTitle.d.ts","sourceRoot":"","sources":["../../../src/useDocumentTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useDocumentTitle.d.ts","sourceRoot":"","sources":["../../../src/useDocumentTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAEpD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,SAA6D,GAC9D,GAAE,oBAAyB,QAwB7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinkBuilder.d.ts","sourceRoot":"","sources":["../../../src/useLinkBuilder.tsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAgB,YAAY,WAWjB,MAAM,WAAW,MAAM,wBAmEjC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,eAQhB,MAAM;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useLinkBuilder.d.ts","sourceRoot":"","sources":["../../../src/useLinkBuilder.tsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH,wBAAgB,YAAY,WAWjB,MAAM,WAAW,MAAM,wBAmEjC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,eAQhB,MAAM;;;;;;;;;;;;;;;;;;;;;;;cA7FP,CAAC;YAAsB,CAAC;aAAuB,CAAC;WAEnD,CAAC;;;;;;;;cAIwB,CAAC;aAE/B,CAAF;;;;;;;cAOe,CAAA;;;;;;;cAKgD,CAAC;;;;;;;;cAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFJ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc;sBA1GnB,MAAM,WAAW,MAAM;wBAgFvB,MAAM;;;;;;;;;;;;;;;;;;;;;;;kBA7FP,CAAC;gBAAsB,CAAC;iBAAuB,CAAC;eAEnD,CAAC;;;;;;;;kBAIwB,CAAC;iBAE/B,CAAF;;;;;;;kBAOe,CAAA;;;;;;;kBAKgD,CAAC;;;;;;;;kBAIxD,CAAH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuGJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getStateFromPath as getStateFromPathDefault, type NavigationContainerRef, type ParamListBase } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { LinkingOptions } from './types';
|
|
3
|
+
import type { LinkingOptions } from './types.js';
|
|
4
4
|
type ResultState = ReturnType<typeof getStateFromPathDefault>;
|
|
5
5
|
/**
|
|
6
6
|
* Run async function in series as it's called.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAuE9D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAE7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO;2BAsGW,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EA6R1D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type NavigationContainerRef, type ParamListBase } from '@react-navigation/core';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { LinkingOptions } from './types';
|
|
3
|
+
import type { LinkingOptions } from './types.js';
|
|
4
4
|
type Options = LinkingOptions<ParamListBase>;
|
|
5
5
|
export declare function useLinking(ref: React.RefObject<NavigationContainerRef<ParamListBase> | null>, { enabled, prefixes, filter, config, getInitialURL, subscribe, getStateFromPath, getActionFromState, }: Options): {
|
|
6
6
|
getInitialState: () => PromiseLike<(Partial<Omit<Readonly<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinking.native.d.ts","sourceRoot":"","sources":["../../../src/useLinking.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useLinking.native.d.ts","sourceRoot":"","sources":["../../../src/useLinking.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAI9C,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAI7C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,QAAQ,EACR,MAAM,EACN,MAAM,EACN,aAQI,EACJ,SAmBC,EACD,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;EAsKX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMemoArray.d.ts","sourceRoot":"","sources":["../../../src/useMemoArray.tsx"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,CAAC,EAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC,EAAE,GAC7C,CAAC,EAAE,CAoCL"}
|
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": "7.
|
|
4
|
+
"version": "7.3.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
7
7
|
"react-navigation",
|
|
@@ -42,10 +42,11 @@
|
|
|
42
42
|
"clean": "del lib"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@react-navigation/core": "^7.
|
|
45
|
+
"@react-navigation/core": "^7.19.0",
|
|
46
46
|
"escape-string-regexp": "^4.0.0",
|
|
47
47
|
"fast-deep-equal": "^3.1.3",
|
|
48
48
|
"nanoid": "^3.3.11",
|
|
49
|
+
"standard-navigation": "^0.0.7",
|
|
49
50
|
"use-latest-callback": "^0.2.4"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
@@ -57,7 +58,7 @@
|
|
|
57
58
|
"react": "19.1.0",
|
|
58
59
|
"react-dom": "19.1.0",
|
|
59
60
|
"react-native": "0.81.5",
|
|
60
|
-
"react-native-builder-bob": "^0.
|
|
61
|
+
"react-native-builder-bob": "^0.42.1",
|
|
61
62
|
"react-test-renderer": "19.1.0",
|
|
62
63
|
"typescript": "^5.9.2"
|
|
63
64
|
},
|
|
@@ -83,5 +84,5 @@
|
|
|
83
84
|
]
|
|
84
85
|
]
|
|
85
86
|
},
|
|
86
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "dd325d641ccae08a61fd25710270abb85865482f"
|
|
87
88
|
}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CommonActions,
|
|
3
|
+
createNavigatorFactory,
|
|
4
|
+
createScreenFactory,
|
|
5
|
+
type DefaultNavigatorOptions,
|
|
6
|
+
type DefaultRouterOptions,
|
|
7
|
+
type EventMapBase,
|
|
8
|
+
type NavigationAction,
|
|
9
|
+
type NavigationProp,
|
|
10
|
+
type NavigatorTypeBagBase,
|
|
11
|
+
type ParamListBase,
|
|
12
|
+
type RouterFactory,
|
|
13
|
+
type StaticConfig,
|
|
14
|
+
type StaticParamList,
|
|
15
|
+
type StaticScreenFactory,
|
|
16
|
+
type TypedNavigator,
|
|
17
|
+
useNavigationBuilder,
|
|
18
|
+
} from '@react-navigation/core';
|
|
19
|
+
import * as React from 'react';
|
|
20
|
+
import type {
|
|
21
|
+
createStandardNavigator,
|
|
22
|
+
NavigatorArgs as StandardNavigationArgs,
|
|
23
|
+
} from 'standard-navigation';
|
|
24
|
+
|
|
25
|
+
import { useBuildHref } from './useLinkBuilder';
|
|
26
|
+
import { useMemoArray } from './useMemoArray';
|
|
27
|
+
|
|
28
|
+
type StandardEventMap<EventMap extends EventMapBase> = {
|
|
29
|
+
[EventName in keyof EventMap]: {
|
|
30
|
+
data: EventMap[EventName] extends { data?: infer Data }
|
|
31
|
+
? Data extends object | undefined
|
|
32
|
+
? Data
|
|
33
|
+
: object | undefined
|
|
34
|
+
: undefined;
|
|
35
|
+
canPreventDefault: EventMap[EventName] extends { canPreventDefault: true }
|
|
36
|
+
? true
|
|
37
|
+
: false;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type ActionHelpersOf<T> =
|
|
42
|
+
T extends Record<string, (...args: never[]) => unknown> ? T : {};
|
|
43
|
+
|
|
44
|
+
type StandardNavigationNavigatorProps<
|
|
45
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
46
|
+
> = TypeBag['RouterOptions'] &
|
|
47
|
+
DefaultNavigatorOptions<
|
|
48
|
+
ParamListBase,
|
|
49
|
+
string | undefined,
|
|
50
|
+
StandardNavigationTypeBagFor<TypeBag, ParamListBase>['State'],
|
|
51
|
+
TypeBag['ScreenOptions'],
|
|
52
|
+
TypeBag['EventMap'],
|
|
53
|
+
StandardNavigation<TypeBag>
|
|
54
|
+
>;
|
|
55
|
+
|
|
56
|
+
type StandardNavigationTypeBagFor<
|
|
57
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
58
|
+
ParamList extends ParamListBase,
|
|
59
|
+
NavigatorID extends string | undefined = string | undefined,
|
|
60
|
+
> = TypeBag & {
|
|
61
|
+
ParamList: ParamList;
|
|
62
|
+
NavigatorID: NavigatorID;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
type StandardNavigation<TypeBag extends StandardNavigationTypeBagBase> =
|
|
66
|
+
StandardNavigationTypeBagFor<
|
|
67
|
+
TypeBag,
|
|
68
|
+
ParamListBase
|
|
69
|
+
>['NavigationList'][keyof StandardNavigationTypeBagFor<
|
|
70
|
+
TypeBag,
|
|
71
|
+
ParamListBase
|
|
72
|
+
>['NavigationList']];
|
|
73
|
+
|
|
74
|
+
type StandardNavigationPropsMapper<
|
|
75
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
76
|
+
NavigatorProps extends object,
|
|
77
|
+
> = (props: {
|
|
78
|
+
state: StandardNavigationTypeBagFor<TypeBag, ParamListBase>['State'];
|
|
79
|
+
navigation: StandardNavigation<TypeBag>;
|
|
80
|
+
}) => Partial<NavigatorProps>;
|
|
81
|
+
|
|
82
|
+
type StandardNavigationDefaultBag<
|
|
83
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
84
|
+
> = StandardNavigationTypeBagFor<TypeBag, ParamListBase, string | undefined>;
|
|
85
|
+
|
|
86
|
+
type StandardNavigationFactories<
|
|
87
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
88
|
+
> = {
|
|
89
|
+
createNavigator: StandardNavigationCreateNavigator<TypeBag>;
|
|
90
|
+
createScreen: StaticScreenFactory<StandardNavigationDefaultBag<TypeBag>>;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export type StandardNavigationCreateNavigator<
|
|
94
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
95
|
+
> = {
|
|
96
|
+
<
|
|
97
|
+
const ParamList extends ParamListBase,
|
|
98
|
+
const NavigatorID extends string | undefined = string | undefined,
|
|
99
|
+
>(): TypedNavigator<
|
|
100
|
+
StandardNavigationTypeBagFor<TypeBag, ParamList, NavigatorID>,
|
|
101
|
+
undefined
|
|
102
|
+
>;
|
|
103
|
+
<const Config extends StaticConfig<StandardNavigationDefaultBag<TypeBag>>>(
|
|
104
|
+
config: Config & StaticConfig<StandardNavigationDefaultBag<TypeBag>>
|
|
105
|
+
): TypedNavigator<
|
|
106
|
+
StandardNavigationTypeBagFor<
|
|
107
|
+
TypeBag,
|
|
108
|
+
StaticParamList<{ config: Config }> & ParamListBase,
|
|
109
|
+
string | undefined
|
|
110
|
+
>,
|
|
111
|
+
Config
|
|
112
|
+
>;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export interface StandardNavigationTypeBagBase extends NavigatorTypeBagBase {
|
|
116
|
+
ActionHelpers: {};
|
|
117
|
+
ScreenOptions: {};
|
|
118
|
+
EventMap: EventMapBase;
|
|
119
|
+
RouterOptions: DefaultRouterOptions;
|
|
120
|
+
NavigationList: {
|
|
121
|
+
[RouteName in keyof this['ParamList']]: NavigationProp<
|
|
122
|
+
this['ParamList'],
|
|
123
|
+
RouteName,
|
|
124
|
+
this['NavigatorID'],
|
|
125
|
+
this['State'],
|
|
126
|
+
this['ScreenOptions'],
|
|
127
|
+
this['EventMap']
|
|
128
|
+
> &
|
|
129
|
+
ActionHelpersOf<this['ActionHelpers']>;
|
|
130
|
+
};
|
|
131
|
+
Navigator: React.ComponentType<{}>;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function createStandardNavigationFactories<
|
|
135
|
+
TypeBag extends StandardNavigationTypeBagBase,
|
|
136
|
+
NavigatorProps extends object = {},
|
|
137
|
+
>(
|
|
138
|
+
navigator: ReturnType<
|
|
139
|
+
typeof createStandardNavigator<
|
|
140
|
+
TypeBag['ScreenOptions'],
|
|
141
|
+
StandardEventMap<TypeBag['EventMap']>,
|
|
142
|
+
NavigatorProps
|
|
143
|
+
>
|
|
144
|
+
>,
|
|
145
|
+
router: RouterFactory<
|
|
146
|
+
StandardNavigationTypeBagFor<TypeBag, ParamListBase>['State'],
|
|
147
|
+
NavigationAction,
|
|
148
|
+
TypeBag['RouterOptions']
|
|
149
|
+
>,
|
|
150
|
+
mapper?: StandardNavigationPropsMapper<TypeBag, NavigatorProps>
|
|
151
|
+
): StandardNavigationFactories<TypeBag> {
|
|
152
|
+
const { type, version, NavigatorContent } = navigator;
|
|
153
|
+
|
|
154
|
+
if (type !== 'standard') {
|
|
155
|
+
throw new Error(
|
|
156
|
+
`createStandardNavigationFactories only works with standard navigator objects, but got navigator of ${typeof type === 'string' ? `type "${type}".` : 'unknown type.'}`
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (version !== 1) {
|
|
161
|
+
throw new Error(
|
|
162
|
+
`createStandardNavigationFactories only works with version 1 of standard navigator objects, but got version ${version}.`
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
type Bag = StandardNavigationTypeBagFor<TypeBag, ParamListBase>;
|
|
167
|
+
type StandardArgs = StandardNavigationArgs<
|
|
168
|
+
TypeBag['ScreenOptions'],
|
|
169
|
+
StandardEventMap<TypeBag['EventMap']>
|
|
170
|
+
>;
|
|
171
|
+
|
|
172
|
+
function StandardNavigationNavigator(
|
|
173
|
+
props: StandardNavigationNavigatorProps<TypeBag>
|
|
174
|
+
) {
|
|
175
|
+
const builder = useNavigationBuilder<
|
|
176
|
+
Bag['State'],
|
|
177
|
+
TypeBag['RouterOptions'],
|
|
178
|
+
ActionHelpersOf<Bag['ActionHelpers']>,
|
|
179
|
+
TypeBag['ScreenOptions'],
|
|
180
|
+
TypeBag['EventMap']
|
|
181
|
+
>(router, props);
|
|
182
|
+
|
|
183
|
+
const buildHref = useBuildHref();
|
|
184
|
+
|
|
185
|
+
const routes = useMemoArray(
|
|
186
|
+
('preloadedRoutes' in builder.state &&
|
|
187
|
+
Array.isArray(builder.state.preloadedRoutes)
|
|
188
|
+
? builder.state.routes.concat(builder.state.preloadedRoutes)
|
|
189
|
+
: builder.state.routes
|
|
190
|
+
).map((route) => {
|
|
191
|
+
const href = buildHref(route.name, route.params);
|
|
192
|
+
|
|
193
|
+
return [
|
|
194
|
+
{
|
|
195
|
+
key: route.key,
|
|
196
|
+
name: route.name,
|
|
197
|
+
params: route.params,
|
|
198
|
+
href,
|
|
199
|
+
},
|
|
200
|
+
[route.key, route.name, route.params, href],
|
|
201
|
+
];
|
|
202
|
+
})
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
const state = React.useMemo(
|
|
206
|
+
(): StandardArgs['state'] => ({
|
|
207
|
+
index: builder.state.index,
|
|
208
|
+
routes,
|
|
209
|
+
}),
|
|
210
|
+
[builder.state.index, routes]
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
const descriptors: StandardArgs['descriptors'] = {};
|
|
214
|
+
|
|
215
|
+
for (const route of state.routes) {
|
|
216
|
+
const descriptor =
|
|
217
|
+
builder.descriptors[route.key] ?? builder.describe(route, true);
|
|
218
|
+
|
|
219
|
+
descriptors[route.key] = {
|
|
220
|
+
options: descriptor.options,
|
|
221
|
+
render: descriptor.render,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const actions = React.useMemo<StandardArgs['actions']>(
|
|
226
|
+
() => ({
|
|
227
|
+
navigate(name, params) {
|
|
228
|
+
builder.navigation.dispatch({
|
|
229
|
+
...CommonActions.navigate(name, params),
|
|
230
|
+
target: builder.state.key,
|
|
231
|
+
});
|
|
232
|
+
},
|
|
233
|
+
back() {
|
|
234
|
+
builder.navigation.goBack();
|
|
235
|
+
},
|
|
236
|
+
}),
|
|
237
|
+
[builder.navigation, builder.state.key]
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
const emitter = React.useMemo<StandardArgs['emitter']>(
|
|
241
|
+
() => ({
|
|
242
|
+
// @ts-expect-error - they are compatible
|
|
243
|
+
emit: builder.navigation.emit,
|
|
244
|
+
}),
|
|
245
|
+
[builder.navigation]
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
const mapped = mapper?.({
|
|
249
|
+
state: builder.state,
|
|
250
|
+
navigation: builder.navigation as StandardNavigation<TypeBag>,
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// Omit props used by useNavigationBuilder and routers internally
|
|
254
|
+
const {
|
|
255
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
256
|
+
children,
|
|
257
|
+
id,
|
|
258
|
+
initialRouteName,
|
|
259
|
+
layout,
|
|
260
|
+
screenLayout,
|
|
261
|
+
screenListeners,
|
|
262
|
+
screenOptions,
|
|
263
|
+
UNSTABLE_routeNamesChangeBehavior,
|
|
264
|
+
UNSTABLE_router,
|
|
265
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
266
|
+
...rest
|
|
267
|
+
} = props;
|
|
268
|
+
|
|
269
|
+
return (
|
|
270
|
+
<builder.NavigationContent>
|
|
271
|
+
<NavigatorContent
|
|
272
|
+
{...(rest as NavigatorProps)}
|
|
273
|
+
{...mapped}
|
|
274
|
+
state={state}
|
|
275
|
+
descriptors={descriptors}
|
|
276
|
+
actions={actions}
|
|
277
|
+
emitter={emitter}
|
|
278
|
+
/>
|
|
279
|
+
</builder.NavigationContent>
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
const createNavigator = createNavigatorFactory(
|
|
284
|
+
StandardNavigationNavigator
|
|
285
|
+
) as StandardNavigationCreateNavigator<TypeBag>;
|
|
286
|
+
|
|
287
|
+
const createScreen =
|
|
288
|
+
createScreenFactory<StandardNavigationDefaultBag<TypeBag>>();
|
|
289
|
+
|
|
290
|
+
return {
|
|
291
|
+
createNavigator,
|
|
292
|
+
createScreen,
|
|
293
|
+
};
|
|
294
|
+
}
|
package/src/index.tsx
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export {
|
|
2
|
+
createStandardNavigationFactories,
|
|
3
|
+
type StandardNavigationCreateNavigator,
|
|
4
|
+
type StandardNavigationTypeBagBase,
|
|
5
|
+
} from './createStandardNavigationFactories';
|
|
1
6
|
export { createStaticNavigation } from './createStaticNavigation';
|
|
2
7
|
export { Link } from './Link';
|
|
3
8
|
export { LinkingContext } from './LinkingContext';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
export function useMemoArray<T>(
|
|
4
|
+
entries: [item: T, deps: readonly unknown[]][]
|
|
5
|
+
): T[] {
|
|
6
|
+
const previousRef = React.useRef<
|
|
7
|
+
| {
|
|
8
|
+
entries: { item: T; deps: readonly unknown[] }[];
|
|
9
|
+
items: T[];
|
|
10
|
+
}
|
|
11
|
+
| undefined
|
|
12
|
+
>(undefined);
|
|
13
|
+
|
|
14
|
+
const previous = previousRef.current;
|
|
15
|
+
const next = entries.map(([item, deps], index) => {
|
|
16
|
+
const previousEntry = previous?.entries[index];
|
|
17
|
+
const depsEqual =
|
|
18
|
+
previousEntry &&
|
|
19
|
+
previousEntry.deps.length === deps.length &&
|
|
20
|
+
previousEntry.deps.every((it, index) => Object.is(it, deps[index]));
|
|
21
|
+
|
|
22
|
+
return depsEqual ? previousEntry : { item, deps };
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
if (
|
|
26
|
+
previous &&
|
|
27
|
+
previous.entries.length === next.length &&
|
|
28
|
+
next.every((entry, index) => entry === previous.entries[index])
|
|
29
|
+
) {
|
|
30
|
+
return previous.items;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const items = next.map((entry) => entry.item);
|
|
34
|
+
|
|
35
|
+
previousRef.current = {
|
|
36
|
+
entries: next,
|
|
37
|
+
items,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return items;
|
|
41
|
+
}
|