@react-navigation/core 8.0.0-alpha.33 → 8.0.0-alpha.35
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/README.md +17 -14
- package/lib/module/BaseNavigationContainer.js +14 -2
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/NavigationBuilderContext.js +8 -13
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/NavigationIndependentTree.js +45 -15
- package/lib/module/NavigationIndependentTree.js.map +1 -1
- package/lib/module/NavigationProvider.js +9 -4
- package/lib/module/NavigationProvider.js.map +1 -1
- package/lib/module/PreventRemoveProvider.js +2 -2
- package/lib/module/PreventRemoveProvider.js.map +1 -1
- package/lib/module/SceneView.js +2 -1
- package/lib/module/SceneView.js.map +1 -1
- package/lib/module/getPathFromState.js +41 -16
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getPatternParts.js +43 -12
- package/lib/module/getPatternParts.js.map +1 -1
- package/lib/module/getStateFromPath.js +175 -109
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useDescriptors.js +9 -6
- package/lib/module/useDescriptors.js.map +1 -1
- package/lib/module/useFocusEffect.js +4 -2
- package/lib/module/useFocusEffect.js.map +1 -1
- package/lib/module/useFocusEvents.js +4 -2
- package/lib/module/useFocusEvents.js.map +1 -1
- package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
- package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/module/useIsFocused.js +1 -0
- package/lib/module/useIsFocused.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +42 -39
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +85 -81
- package/lib/module/useNavigationCache.js.map +1 -1
- package/lib/module/useNavigationHelpers.js +2 -2
- package/lib/module/useNavigationHelpers.js.map +1 -1
- package/lib/module/useNavigationState.js +48 -23
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/module/useOnAction.js +6 -4
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnGetNavigation.js +2 -2
- package/lib/module/useOnGetNavigation.js.map +1 -1
- package/lib/module/useOnGetState.js +2 -2
- package/lib/module/useOnGetState.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +2 -2
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useOnRouteFocus.js +2 -2
- package/lib/module/useOnRouteFocus.js.map +1 -1
- package/lib/module/useOptionsGetters.js +19 -20
- package/lib/module/useOptionsGetters.js.map +1 -1
- package/lib/module/usePreventRemoveContext.js +1 -1
- package/lib/module/usePreventRemoveContext.js.map +1 -1
- package/lib/module/useRouteCache.js +43 -33
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useScheduleUpdate.js +5 -3
- package/lib/module/useScheduleUpdate.js.map +1 -1
- package/lib/module/useSyncState.js +9 -10
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -6
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
- package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
- package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
- package/lib/typescript/src/SceneView.d.ts +2 -1
- package/lib/typescript/src/SceneView.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/getPatternParts.d.ts +4 -2
- package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useDescriptors.d.ts +2 -2
- package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
- package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
- package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
- package/lib/typescript/src/useIsFocused.d.ts +1 -0
- package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts +1 -3
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationState.d.ts +1 -0
- package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useOnGetNavigation.d.ts.map +1 -1
- package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
- package/lib/typescript/src/useOptionsGetters.d.ts +2 -4
- package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts +7 -12
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/lib/typescript/src/utilities.d.ts +3 -0
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/BaseNavigationContainer.tsx +19 -2
- package/src/NavigationBuilderContext.tsx +22 -18
- package/src/NavigationIndependentTree.tsx +56 -22
- package/src/NavigationProvider.tsx +13 -4
- package/src/PreventRemoveProvider.tsx +2 -8
- package/src/SceneView.tsx +3 -1
- package/src/getPathFromState.tsx +63 -15
- package/src/getPatternParts.tsx +75 -14
- package/src/getStateFromPath.tsx +250 -113
- package/src/index.tsx +1 -0
- package/src/types.tsx +1 -1
- package/src/useDescriptors.tsx +20 -6
- package/src/useFocusEffect.tsx +5 -2
- package/src/useFocusEvents.tsx +5 -2
- package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
- package/src/useIsFocused.tsx +4 -0
- package/src/useNavigationBuilder.tsx +54 -48
- package/src/useNavigationCache.tsx +130 -108
- package/src/useNavigationHelpers.tsx +2 -2
- package/src/useNavigationState.tsx +60 -29
- package/src/useOnAction.tsx +6 -5
- package/src/useOnGetNavigation.tsx +3 -2
- package/src/useOnGetState.tsx +4 -2
- package/src/useOnPreventRemove.tsx +4 -2
- package/src/useOnRouteFocus.tsx +2 -4
- package/src/useOptionsGetters.tsx +26 -25
- package/src/usePreventRemoveContext.tsx +1 -1
- package/src/useRouteCache.tsx +49 -33
- package/src/useScheduleUpdate.tsx +6 -3
- package/src/useSyncState.tsx +9 -11
- package/src/utilities.tsx +5 -2
- package/lib/module/useComponent.js +0 -34
- package/lib/module/useComponent.js.map +0 -1
- package/lib/typescript/src/useComponent.d.ts +0 -7
- package/lib/typescript/src/useComponent.d.ts.map +0 -1
- package/src/useComponent.tsx +0 -37
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
5
5
|
import { NavigationRouteContext } from "./NavigationProvider.js";
|
|
6
6
|
/**
|
|
7
7
|
* Hook which lets the container access the navigation object of the root navigator.
|
|
@@ -12,7 +12,7 @@ export function useOnGetNavigation({
|
|
|
12
12
|
}) {
|
|
13
13
|
const {
|
|
14
14
|
addKeyedListener
|
|
15
|
-
} =
|
|
15
|
+
} = useNavigationBuilderContext();
|
|
16
16
|
const route = React.use(NavigationRouteContext);
|
|
17
17
|
React.useInsertionEffect(() => {
|
|
18
18
|
// We only register if this is the root navigator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useNavigationBuilderContext","NavigationRouteContext","useOnGetNavigation","navigation","addKeyedListener","route","use","useInsertionEffect"],"sourceRoot":"../../src","sources":["useOnGetNavigation.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,2BAA2B,QAAQ,+BAA4B;AACxE,SAASC,sBAAsB,QAAQ,yBAAsB;AAO7D;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAC;EAAEC;AAAoB,CAAC,EAAE;EAC1D,MAAM;IAAEC;EAAiB,CAAC,GAAGJ,2BAA2B,CAAC,CAAC;EAE1D,MAAMK,KAAK,GAAGN,KAAK,CAACO,GAAG,CAACL,sBAAsB,CAAC;EAE/CF,KAAK,CAACQ,kBAAkB,CAAC,MAAM;IAC7B;IACA;IACA,IAAIF,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,OAAOD,gBAAgB,GAAG,eAAe,EAAE,MAAM,EAAE,MAAMD,UAAU,CAAC;EACtE,CAAC,EAAE,CAACC,gBAAgB,EAAED,UAAU,EAAEE,KAAK,CAAC,CAAC;AAC3C","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { isArrayEqual } from "./isArrayEqual.js";
|
|
5
|
-
import {
|
|
5
|
+
import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
6
6
|
import { NavigationRouteContext } from "./NavigationProvider.js";
|
|
7
7
|
export function useOnGetState({
|
|
8
8
|
getState,
|
|
@@ -10,7 +10,7 @@ export function useOnGetState({
|
|
|
10
10
|
}) {
|
|
11
11
|
const {
|
|
12
12
|
addKeyedListener
|
|
13
|
-
} =
|
|
13
|
+
} = useNavigationBuilderContext();
|
|
14
14
|
const route = React.use(NavigationRouteContext);
|
|
15
15
|
const key = route ? route.key : 'root';
|
|
16
16
|
const getRehydratedState = React.useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isArrayEqual","
|
|
1
|
+
{"version":3,"names":["React","isArrayEqual","useNavigationBuilderContext","NavigationRouteContext","useOnGetState","getState","getStateListeners","addKeyedListener","route","use","key","getRehydratedState","useCallback","state","routes","map","childState","useInsertionEffect"],"sourceRoot":"../../src","sources":["useOnGetState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAEEC,2BAA2B,QACtB,+BAA4B;AACnC,SAASC,sBAAsB,QAAQ,yBAAsB;AAO7D,OAAO,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEC;AAA2B,CAAC,EAAE;EACtE,MAAM;IAAEC;EAAiB,CAAC,GAAGL,2BAA2B,CAAC,CAAC;EAE1D,MAAMM,KAAK,GAAGR,KAAK,CAACS,GAAG,CAACN,sBAAsB,CAAC;EAE/C,MAAMO,GAAG,GAAGF,KAAK,GAAGA,KAAK,CAACE,GAAG,GAAG,MAAM;EAEtC,MAAMC,kBAAkB,GAAGX,KAAK,CAACY,WAAW,CAAC,MAAM;IACjD,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;;IAExB;IACA,MAAMS,MAAM,GAAGD,KAAK,CAACC,MAAM,CAACC,GAAG,CAAEP,KAAK,IAAK;MACzC,MAAMQ,UAAU,GAAGV,iBAAiB,CAACE,KAAK,CAACE,GAAG,CAAC,GAAG,CAAC;MAEnD,IAAIF,KAAK,CAACK,KAAK,KAAKG,UAAU,EAAE;QAC9B,OAAOR,KAAK;MACd;MAEA,OAAO;QAAE,GAAGA,KAAK;QAAEK,KAAK,EAAEG;MAAW,CAAC;IACxC,CAAC,CAAC;IAEF,IAAIf,YAAY,CAACY,KAAK,CAACC,MAAM,EAAEA,MAAM,CAAC,EAAE;MACtC,OAAOD,KAAK;IACd;IAEA,OAAO;MAAE,GAAGA,KAAK;MAAEC;IAAO,CAAC;EAC7B,CAAC,EAAE,CAACT,QAAQ,EAAEC,iBAAiB,CAAC,CAAC;;EAEjC;EACA;EACAN,KAAK,CAACiB,kBAAkB,CAAC,MAAM;IAC7B,OAAOV,gBAAgB,GAAG,UAAU,EAAEG,GAAG,EAAEC,kBAAkB,CAAC;EAChE,CAAC,EAAE,CAACJ,gBAAgB,EAAEI,kBAAkB,EAAED,GAAG,CAAC,CAAC;AACjD","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
5
5
|
import { NavigationRouteContext } from "./NavigationProvider.js";
|
|
6
6
|
const VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');
|
|
7
7
|
export const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoutes, nextRoutes, action) => {
|
|
@@ -58,7 +58,7 @@ export function useOnPreventRemove({
|
|
|
58
58
|
}) {
|
|
59
59
|
const {
|
|
60
60
|
addKeyedListener
|
|
61
|
-
} =
|
|
61
|
+
} = useNavigationBuilderContext();
|
|
62
62
|
const route = React.use(NavigationRouteContext);
|
|
63
63
|
const routeKey = route?.key;
|
|
64
64
|
React.useInsertionEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useNavigationBuilderContext","NavigationRouteContext","VISITED_ROUTE_KEYS","Symbol","shouldPreventRemove","emitter","beforeRemoveListeners","currentRoutes","nextRoutes","action","nextRoutesByKey","Map","map","route","key","filter","visitedRouteKeys","Set","beforeRemoveAction","reversedCurrentRoutes","reverse","has","isPrevented","undefined","add","event","emit","type","target","data","canPreventDefault","defaultPrevented","nextRoute","get","state","useOnPreventRemove","getState","addKeyedListener","use","routeKey","useInsertionEffect","nextState","routes"],"sourceRoot":"../../src","sources":["useOnPreventRemove.tsx"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAEEC,2BAA2B,QACtB,+BAA4B;AACnC,SAASC,sBAAsB,QAAQ,yBAAsB;AAU7D,MAAMC,kBAAkB,GAAGC,MAAM,CAAC,oBAAoB,CAAC;AAEvD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,OAAkD,EAClDC,qBAA4E,EAC5EC,aAAuD,EACvDC,UAGG,EACHC,MAAwB,KACrB;EACH,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAC7BH,UAAU,CACPI,GAAG,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACC,GAAG,EAAED,KAAK,CAAU,CAAC,CAC3CE,MAAM,CAAC,CAAC,GAAGF,KAAK,CAAC,KAAKA,KAAK,CAACC,GAAG,IAAI,IAAI,CAC5C,CAAC;EAED,MAAME,gBAAgB,GACpBd,kBAAkB,IAAIO,MAAM,IAAIA,MAAM,CAACP,kBAAkB,CAAC,YAAYe,GAAG,GACrER,MAAM,CAACP,kBAAkB,CAAC,GAC1B,IAAIe,GAAG,CAAS,CAAC;EAEvB,MAAMC,kBAAkB,GAAG;IACzB,GAAGT,MAAM;IACT,CAACP,kBAAkB,GAAGc;EACxB,CAAC;;EAED;EACA,MAAMG,qBAAqB,GAAG,CAAC,GAAGZ,aAAa,CAAC,CAACa,OAAO,CAAC,CAAC;EAE1D,KAAK,MAAMP,KAAK,IAAIM,qBAAqB,EAAE;IACzC,IAAIH,gBAAgB,CAACK,GAAG,CAACR,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;IACF;IAEA,IAAI,CAACJ,eAAe,CAACW,GAAG,CAACR,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;MACA,MAAMQ,WAAW,GAAGhB,qBAAqB,CAACO,KAAK,CAACC,GAAG,CAAC,GAClDI,kBAAkB,EAClBK,SACF,CAAC;MAED,IAAID,WAAW,EAAE;QACf,OAAO,IAAI;MACb;MAEAN,gBAAgB,CAACQ,GAAG,CAACX,KAAK,CAACC,GAAG,CAAC;MAE/B,MAAMW,KAAK,GAAGpB,OAAO,CAACqB,IAAI,CAAC;QACzBC,IAAI,EAAE,cAAc;QACpBC,MAAM,EAAEf,KAAK,CAACC,GAAG;QACjBe,IAAI,EAAE;UAAEpB,MAAM,EAAES;QAAmB,CAAC;QACpCY,iBAAiB,EAAE;MACrB,CAAC,CAAC;MAEF,IAAIL,KAAK,CAACM,gBAAgB,EAAE;QAC1B,OAAO,IAAI;MACb;IACF,CAAC,MAAM;MACL;MACA,MAAMC,SAAS,GAAGtB,eAAe,CAACuB,GAAG,CAACpB,KAAK,CAACC,GAAG,CAAC;MAEhD,IAAID,KAAK,CAACqB,KAAK,IAAI,IAAI,IAAIrB,KAAK,CAACqB,KAAK,KAAKF,SAAS,EAAEE,KAAK,EAAE;QAC3D,MAAMZ,WAAW,GAAGhB,qBAAqB,CAACO,KAAK,CAACC,GAAG,CAAC,GAClDI,kBAAkB,EAClBc,SAAS,EAAEE,KACb,CAAC;QAED,IAAIZ,WAAW,EAAE;UACf,OAAO,IAAI;QACb;MACF;IACF;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,SAASa,kBAAkBA,CAAC;EACjCC,QAAQ;EACR/B,OAAO;EACPC;AACO,CAAC,EAAE;EACV,MAAM;IAAE+B;EAAiB,CAAC,GAAGrC,2BAA2B,CAAC,CAAC;EAE1D,MAAMa,KAAK,GAAGd,KAAK,CAACuC,GAAG,CAACrC,sBAAsB,CAAC;EAE/C,MAAMsC,QAAQ,GAAG1B,KAAK,EAAEC,GAAG;EAE3Bf,KAAK,CAACyC,kBAAkB,CAAC,MAAM;IAC7B,IAAID,QAAQ,EAAE;MACZ,OAAOF,gBAAgB,GACrB,cAAc,EACdE,QAAQ,EACR,CAAC9B,MAAM,EAAEgC,SAAS,KAAK;QACrB,MAAMP,KAAK,GAAGE,QAAQ,CAAC,CAAC;QAExB,OAAOhC,mBAAmB,CACxBC,OAAO,EACPC,qBAAqB,EACrB4B,KAAK,CAACQ,MAAM,EACZD,SAAS,EAAEC,MAAM,IAAI,EAAE,EACvBjC,MACF,CAAC;MACH,CACF,CAAC;IACH;EACF,CAAC,EAAE,CAAC4B,gBAAgB,EAAE/B,qBAAqB,EAAED,OAAO,EAAE+B,QAAQ,EAAEG,QAAQ,CAAC,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
5
5
|
/**
|
|
6
6
|
* Hook to handle focus actions for a route.
|
|
7
7
|
* Focus action needs to be treated specially, coz when a nested route is focused,
|
|
@@ -15,7 +15,7 @@ export function useOnRouteFocus({
|
|
|
15
15
|
}) {
|
|
16
16
|
const {
|
|
17
17
|
onRouteFocus: onRouteFocusParent
|
|
18
|
-
} =
|
|
18
|
+
} = useNavigationBuilderContext();
|
|
19
19
|
return React.useCallback(key => {
|
|
20
20
|
const state = getState();
|
|
21
21
|
const result = router.getStateForRouteFocus(state, key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useNavigationBuilderContext","useOnRouteFocus","router","getState","key","sourceRouteKey","setState","onRouteFocus","onRouteFocusParent","useCallback","state","result","getStateForRouteFocus","undefined"],"sourceRoot":"../../src","sources":["useOnRouteFocus.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,2BAA2B,QAAQ,+BAA4B;AASxE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAG7B;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,GAAG,EAAEC,cAAc;EAAEC;AAAiC,CAAC,EAAE;EAC7E,MAAM;IAAEC,YAAY,EAAEC;EAAmB,CAAC,GAAGR,2BAA2B,CAAC,CAAC;EAE1E,OAAOD,KAAK,CAACU,WAAW,CACrBL,GAAW,IAAK;IACf,MAAMM,KAAK,GAAGP,QAAQ,CAAC,CAAC;IACxB,MAAMQ,MAAM,GAAGT,MAAM,CAACU,qBAAqB,CAACF,KAAK,EAAEN,GAAG,CAAC;IAEvD,IAAIO,MAAM,KAAKD,KAAK,EAAE;MACpBJ,QAAQ,CAACK,MAAM,CAAC;IAClB;IAEA,IAAIH,kBAAkB,KAAKK,SAAS,IAAIR,cAAc,KAAKQ,SAAS,EAAE;MACpEL,kBAAkB,CAACH,cAAc,CAAC;IACpC;EACF,CAAC,EACD,CAACF,QAAQ,EAAEK,kBAAkB,EAAEN,MAAM,EAAEI,QAAQ,EAAED,cAAc,CACjE,CAAC;AACH","ignoreList":[]}
|
|
@@ -3,33 +3,25 @@
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
5
5
|
import { NavigationStateContext } from "./NavigationStateContext.js";
|
|
6
|
+
import { IsFocusedContext } from "./useIsFocused.js";
|
|
6
7
|
export function useOptionsGetters({
|
|
7
8
|
key,
|
|
8
9
|
options,
|
|
9
|
-
|
|
10
|
+
getFocusedRouteKey
|
|
10
11
|
}) {
|
|
12
|
+
const isFocused = React.use(IsFocusedContext) ?? true;
|
|
11
13
|
const optionsRef = React.useRef(options);
|
|
12
14
|
const optionsGettersFromChildRef = React.useRef({});
|
|
13
|
-
const
|
|
14
|
-
onOptionsChange
|
|
15
|
-
} = React.use(NavigationBuilderContext);
|
|
15
|
+
const onOptionsChange = React.use(NavigationBuilderContext)?.onOptionsChange;
|
|
16
16
|
const {
|
|
17
17
|
addOptionsGetter: parentAddOptionsGetter
|
|
18
18
|
} = React.use(NavigationStateContext);
|
|
19
|
-
const optionsChangeListener = React.useCallback(() => {
|
|
20
|
-
const isFocused = navigation?.isFocused() ?? true;
|
|
21
|
-
const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;
|
|
22
|
-
if (isFocused && !hasChildren) {
|
|
23
|
-
onOptionsChange(optionsRef.current ?? {});
|
|
24
|
-
}
|
|
25
|
-
}, [navigation, onOptionsChange]);
|
|
26
19
|
React.useInsertionEffect(() => {
|
|
27
20
|
optionsRef.current = options;
|
|
28
21
|
}, [options]);
|
|
29
22
|
React.useEffect(() => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}, [navigation, options, optionsChangeListener]);
|
|
23
|
+
onOptionsChange?.();
|
|
24
|
+
}, [isFocused, onOptionsChange, options]);
|
|
33
25
|
const getOptionsFromListener = React.useCallback(() => {
|
|
34
26
|
for (const key in optionsGettersFromChildRef.current) {
|
|
35
27
|
if (key in optionsGettersFromChildRef.current) {
|
|
@@ -44,8 +36,11 @@ export function useOptionsGetters({
|
|
|
44
36
|
return null;
|
|
45
37
|
}, []);
|
|
46
38
|
const getCurrentOptions = React.useCallback(() => {
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
// We use focused route key from the navigator instead of `isFocused`
|
|
40
|
+
// Because `isFocused` may reflect the value the screen last rendered with,
|
|
41
|
+
// e.g. if `Activity` hides the screen before it rendered the new value,
|
|
42
|
+
// it updates at a lower priority, so it may be delayed.
|
|
43
|
+
if (key != null && getFocusedRouteKey?.() !== key) {
|
|
49
44
|
return null;
|
|
50
45
|
}
|
|
51
46
|
const optionsFromListener = getOptionsFromListener();
|
|
@@ -53,7 +48,7 @@ export function useOptionsGetters({
|
|
|
53
48
|
return optionsFromListener;
|
|
54
49
|
}
|
|
55
50
|
return optionsRef.current;
|
|
56
|
-
}, [
|
|
51
|
+
}, [key, getFocusedRouteKey, getOptionsFromListener]);
|
|
57
52
|
React.useInsertionEffect(() => {
|
|
58
53
|
// We don't have a parent at the root
|
|
59
54
|
if (key != null) {
|
|
@@ -62,13 +57,17 @@ export function useOptionsGetters({
|
|
|
62
57
|
}, [getCurrentOptions, parentAddOptionsGetter, key]);
|
|
63
58
|
const addOptionsGetter = React.useCallback((key, getter) => {
|
|
64
59
|
optionsGettersFromChildRef.current[key] = getter;
|
|
65
|
-
optionsChangeListener();
|
|
66
60
|
return () => {
|
|
67
61
|
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
68
62
|
delete optionsGettersFromChildRef.current[key];
|
|
69
|
-
|
|
63
|
+
|
|
64
|
+
// Other getters and the focused route may still change during cleanup.
|
|
65
|
+
// Wait until the commit finishes before reporting the remaining options.
|
|
66
|
+
if (onOptionsChange !== undefined) {
|
|
67
|
+
queueMicrotask(onOptionsChange);
|
|
68
|
+
}
|
|
70
69
|
};
|
|
71
|
-
}, [
|
|
70
|
+
}, [onOptionsChange]);
|
|
72
71
|
return {
|
|
73
72
|
addOptionsGetter,
|
|
74
73
|
getCurrentOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","NavigationStateContext","useOptionsGetters","key","options","
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","NavigationStateContext","IsFocusedContext","useOptionsGetters","key","options","getFocusedRouteKey","isFocused","use","optionsRef","useRef","optionsGettersFromChildRef","onOptionsChange","addOptionsGetter","parentAddOptionsGetter","useInsertionEffect","current","useEffect","getOptionsFromListener","useCallback","result","getCurrentOptions","optionsFromListener","getter","undefined","queueMicrotask"],"sourceRoot":"../../src","sources":["useOptionsGetters.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,gBAAgB,QAAQ,mBAAgB;AAQjD,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,GAAG;EACHC,OAAO;EACPC;AACO,CAAC,EAAE;EACV,MAAMC,SAAS,GAAGR,KAAK,CAACS,GAAG,CAACN,gBAAgB,CAAC,IAAI,IAAI;EAErD,MAAMO,UAAU,GAAGV,KAAK,CAACW,MAAM,CAAqBL,OAAO,CAAC;EAC5D,MAAMM,0BAA0B,GAAGZ,KAAK,CAACW,MAAM,CAE7C,CAAC,CAAC,CAAC;EAEL,MAAME,eAAe,GAAGb,KAAK,CAACS,GAAG,CAACR,wBAAwB,CAAC,EAAEY,eAAe;EAE5E,MAAM;IAAEC,gBAAgB,EAAEC;EAAuB,CAAC,GAAGf,KAAK,CAACS,GAAG,CAC5DP,sBACF,CAAC;EAEDF,KAAK,CAACgB,kBAAkB,CAAC,MAAM;IAC7BN,UAAU,CAACO,OAAO,GAAGX,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEbN,KAAK,CAACkB,SAAS,CAAC,MAAM;IACpBL,eAAe,GAAG,CAAC;EACrB,CAAC,EAAE,CAACL,SAAS,EAAEK,eAAe,EAAEP,OAAO,CAAC,CAAC;EAEzC,MAAMa,sBAAsB,GAAGnB,KAAK,CAACoB,WAAW,CAAC,MAAM;IACrD,KAAK,MAAMf,GAAG,IAAIO,0BAA0B,CAACK,OAAO,EAAE;MACpD,IAAIZ,GAAG,IAAIO,0BAA0B,CAACK,OAAO,EAAE;QAC7C,MAAMI,MAAM,GAAGT,0BAA0B,CAACK,OAAO,CAACZ,GAAG,CAAC,GAAG,CAAC;;QAE1D;QACA,IAAIgB,MAAM,KAAK,IAAI,EAAE;UACnB,OAAOA,MAAM;QACf;MACF;IACF;IAEA,OAAO,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,iBAAiB,GAAGtB,KAAK,CAACoB,WAAW,CAAC,MAAM;IAChD;IACA;IACA;IACA;IACA,IAAIf,GAAG,IAAI,IAAI,IAAIE,kBAAkB,GAAG,CAAC,KAAKF,GAAG,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,MAAMkB,mBAAmB,GAAGJ,sBAAsB,CAAC,CAAC;IAEpD,IAAII,mBAAmB,KAAK,IAAI,EAAE;MAChC,OAAOA,mBAAmB;IAC5B;IAEA,OAAOb,UAAU,CAACO,OAAO;EAC3B,CAAC,EAAE,CAACZ,GAAG,EAAEE,kBAAkB,EAAEY,sBAAsB,CAAC,CAAC;EAErDnB,KAAK,CAACgB,kBAAkB,CAAC,MAAM;IAC7B;IACA,IAAIX,GAAG,IAAI,IAAI,EAAE;MACf,OAAOU,sBAAsB,GAAGV,GAAG,EAAEiB,iBAAiB,CAAC;IACzD;EACF,CAAC,EAAE,CAACA,iBAAiB,EAAEP,sBAAsB,EAAEV,GAAG,CAAC,CAAC;EAEpD,MAAMS,gBAAgB,GAAGd,KAAK,CAACoB,WAAW,CACxC,CAACf,GAAW,EAAEmB,MAAuC,KAAK;IACxDZ,0BAA0B,CAACK,OAAO,CAACZ,GAAG,CAAC,GAAGmB,MAAM;IAEhD,OAAO,MAAM;MACX;MACA,OAAOZ,0BAA0B,CAACK,OAAO,CAACZ,GAAG,CAAC;;MAE9C;MACA;MACA,IAAIQ,eAAe,KAAKY,SAAS,EAAE;QACjCC,cAAc,CAACb,eAAe,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EACD,CAACA,eAAe,CAClB,CAAC;EAED,OAAO;IACLC,gBAAgB;IAChBQ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { PreventRemoveContext } from "./PreventRemoveContext.js";
|
|
|
5
5
|
export function usePreventRemoveContext() {
|
|
6
6
|
const value = React.use(PreventRemoveContext);
|
|
7
7
|
if (value == null) {
|
|
8
|
-
throw new Error("Couldn't find the prevent remove context.
|
|
8
|
+
throw new Error("Couldn't find the prevent remove context. This is likely a bug in the navigator.\n\nIf you're using a custom navigator, make sure that the navigator content is wrapped by the 'render' function returned by 'useNavigationBuilder'.");
|
|
9
9
|
}
|
|
10
10
|
return value;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PreventRemoveContext","usePreventRemoveContext","value","use","Error"],"sourceRoot":"../../src","sources":["usePreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,MAAMC,KAAK,GAAGH,KAAK,CAACI,GAAG,CAACH,oBAAoB,CAAC;EAE7C,IAAIE,KAAK,IAAI,IAAI,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,
|
|
1
|
+
{"version":3,"names":["React","PreventRemoveContext","usePreventRemoveContext","value","use","Error"],"sourceRoot":"../../src","sources":["usePreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,MAAMC,KAAK,GAAGH,KAAK,CAACI,GAAG,CAACH,oBAAoB,CAAC;EAE7C,IAAIE,KAAK,IAAI,IAAI,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,sOACF,CAAC;EACH;EAEA,OAAOF,KAAK;AACd","ignoreList":[]}
|
|
@@ -8,7 +8,6 @@ import { isRecordEqual } from "./isRecordEqual.js";
|
|
|
8
8
|
* This is fine since they are internal utilities and this is not public API.
|
|
9
9
|
*/
|
|
10
10
|
export const CHILD_STATE = Symbol('CHILD_STATE');
|
|
11
|
-
|
|
12
11
|
/**
|
|
13
12
|
* Hook to cache route props for each screen in the navigator.
|
|
14
13
|
* This lets add warnings and modifications to the route object but keep references between renders.
|
|
@@ -18,34 +17,50 @@ export function useRouteCache(routes) {
|
|
|
18
17
|
const cache = React.useMemo(() => ({
|
|
19
18
|
current: new Map()
|
|
20
19
|
}), []);
|
|
21
|
-
const next =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
const next = React.useMemo(() => {
|
|
21
|
+
return routes.reduce((acc, route) => {
|
|
22
|
+
const previous = cache.current.get(route.key);
|
|
23
|
+
const {
|
|
24
|
+
state: _,
|
|
25
|
+
...routeWithoutState
|
|
26
|
+
} = route;
|
|
27
|
+
let proxy;
|
|
28
|
+
if (previous && isRecordEqual(previous, routeWithoutState)) {
|
|
29
|
+
// If a cached route object already exists, reuse it
|
|
30
|
+
proxy = previous;
|
|
31
|
+
} else {
|
|
32
|
+
proxy = routeWithoutState;
|
|
33
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
34
|
+
// FIXME: since the state is updated with mutation, the route object cannot be frozen
|
|
35
|
+
// As a workaround, loop through the object and make the properties readonly
|
|
36
|
+
// Only needed once per proxy - skip if we're reusing a previously-frozen one
|
|
37
|
+
for (const [key, value] of Object.entries(proxy)) {
|
|
38
|
+
Object.defineProperty(proxy, key, {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
writable: false,
|
|
42
|
+
value
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
+
acc.set(route.key, proxy);
|
|
48
|
+
return acc;
|
|
49
|
+
}, new Map());
|
|
50
|
+
}, [cache, routes]);
|
|
51
|
+
React.useInsertionEffect(() => {
|
|
52
|
+
cache.current = next;
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// Update child state on every render, including when the memo is reused.
|
|
56
|
+
// This restores the previous child state when a pending render is canceled.
|
|
57
|
+
return Array.from(next.values(), (proxy, index) => {
|
|
58
|
+
const state = routes[index]?.state;
|
|
47
59
|
|
|
48
|
-
//
|
|
60
|
+
// FIXME: We mutate the child state without replacing the cached route object,
|
|
61
|
+
// so nested navigation doesn't re-render the parent screen.
|
|
62
|
+
// This is not concurrent render safe, pending renders mutate this shared child state.
|
|
63
|
+
// Then `getFocusedRouteNameFromRoute` can expose it before the render commits.
|
|
49
64
|
if (proxy[CHILD_STATE] !== state) {
|
|
50
65
|
Object.defineProperty(proxy, CHILD_STATE, {
|
|
51
66
|
enumerable: false,
|
|
@@ -53,12 +68,7 @@ export function useRouteCache(routes) {
|
|
|
53
68
|
value: state
|
|
54
69
|
});
|
|
55
70
|
}
|
|
56
|
-
|
|
57
|
-
return acc;
|
|
58
|
-
}, new Map());
|
|
59
|
-
React.useInsertionEffect(() => {
|
|
60
|
-
cache.current = next;
|
|
71
|
+
return proxy;
|
|
61
72
|
});
|
|
62
|
-
return Array.from(next.values());
|
|
63
73
|
}
|
|
64
74
|
//# sourceMappingURL=useRouteCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isRecordEqual","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","next","reduce","acc","route","previous","get","key","state","routeWithoutState","proxy","process","env","NODE_ENV","value","Object","entries","defineProperty","enumerable","configurable","writable","set","useInsertionEffect","Array","from","values"],"sourceRoot":"../../src","sources":["useRouteCache.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,oBAAiB;AAG/C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,MAAM,CAAC,aAAa,CAAC
|
|
1
|
+
{"version":3,"names":["React","isRecordEqual","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","next","reduce","acc","route","previous","get","key","state","_","routeWithoutState","proxy","process","env","NODE_ENV","value","Object","entries","defineProperty","enumerable","configurable","writable","set","useInsertionEffect","Array","from","values","index"],"sourceRoot":"../../src","sources":["useRouteCache.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,oBAAiB;AAG/C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,MAAM,CAAC,aAAa,CAAC;AAMhD;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BC,MAAuB,EACvB;EACA;EACA,MAAMC,KAAK,GAAGN,KAAK,CAACO,OAAO,CACzB,OAAO;IAAEC,OAAO,EAAE,IAAIC,GAAG,CAAsB;EAAE,CAAC,CAAC,EACnD,EACF,CAAC;EAED,MAAMC,IAAI,GAAGV,KAAK,CAACO,OAAO,CAAC,MAAM;IAC/B,OAAOF,MAAM,CAACM,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;MACnC,MAAMC,QAAQ,GAAGR,KAAK,CAACE,OAAO,CAACO,GAAG,CAACF,KAAK,CAACG,GAAG,CAAC;MAE7C,MAAM;QAAEC,KAAK,EAAEC,CAAC;QAAE,GAAGC;MAAkB,CAAC,GAAGN,KAAK;MAEhD,IAAIO,KAAkB;MAEtB,IAAIN,QAAQ,IAAIb,aAAa,CAACa,QAAQ,EAAEK,iBAAiB,CAAC,EAAE;QAC1D;QACAC,KAAK,GAAGN,QAAQ;MAClB,CAAC,MAAM;QACLM,KAAK,GAAGD,iBAAiB;QAEzB,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;UACzC;UACA;UACA;UACA,KAAK,MAAM,CAACP,GAAG,EAAEQ,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;YAChDK,MAAM,CAACE,cAAc,CAACP,KAAK,EAAEJ,GAAG,EAAE;cAChCY,UAAU,EAAE,IAAI;cAChBC,YAAY,EAAE,IAAI;cAClBC,QAAQ,EAAE,KAAK;cACfN;YACF,CAAC,CAAC;UACJ;QACF;MACF;MAEAZ,GAAG,CAACmB,GAAG,CAAClB,KAAK,CAACG,GAAG,EAAEI,KAAK,CAAC;MAEzB,OAAOR,GAAG;IACZ,CAAC,EAAE,IAAIH,GAAG,CAAsB,CAAC,CAAC;EACpC,CAAC,EAAE,CAACH,KAAK,EAAED,MAAM,CAAC,CAAC;EAEnBL,KAAK,CAACgC,kBAAkB,CAAC,MAAM;IAC7B1B,KAAK,CAACE,OAAO,GAAGE,IAAI;EACtB,CAAC,CAAC;;EAEF;EACA;EACA,OAAOuB,KAAK,CAACC,IAAI,CAACxB,IAAI,CAACyB,MAAM,CAAC,CAAC,EAAE,CAACf,KAAK,EAAEgB,KAAK,KAAK;IACjD,MAAMnB,KAAK,GAAGZ,MAAM,CAAC+B,KAAK,CAAC,EAAEnB,KAAK;;IAElC;IACA;IACA;IACA;IACA,IAAIG,KAAK,CAAClB,WAAW,CAAC,KAAKe,KAAK,EAAE;MAChCQ,MAAM,CAACE,cAAc,CAACP,KAAK,EAAElB,WAAW,EAAE;QACxC0B,UAAU,EAAE,KAAK;QACjBC,YAAY,EAAE,IAAI;QAClBL,KAAK,EAAEP;MACT,CAAC,CAAC;IACJ;IAEA,OAAOG,KAAK;EACd,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import
|
|
4
|
+
import useLatestCallback from 'use-latest-callback';
|
|
5
|
+
import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* When screen config changes, we want to update the navigator in the same update phase.
|
|
@@ -15,9 +16,10 @@ export function useScheduleUpdate(callback) {
|
|
|
15
16
|
const {
|
|
16
17
|
scheduleUpdate,
|
|
17
18
|
flushUpdates
|
|
18
|
-
} =
|
|
19
|
+
} = useNavigationBuilderContext();
|
|
20
|
+
const latestCallback = useLatestCallback(callback);
|
|
19
21
|
React.useInsertionEffect(() => {
|
|
20
|
-
scheduleUpdate(
|
|
22
|
+
scheduleUpdate(latestCallback);
|
|
21
23
|
});
|
|
22
24
|
React.useLayoutEffect(flushUpdates);
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useLatestCallback","useNavigationBuilderContext","useScheduleUpdate","callback","scheduleUpdate","flushUpdates","latestCallback","useInsertionEffect","useLayoutEffect"],"sourceRoot":"../../src","sources":["useScheduleUpdate.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,2BAA2B,QAAQ,+BAA4B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,QAAoB,EAAE;EACtD,MAAM;IAAEC,cAAc;IAAEC;EAAa,CAAC,GAAGJ,2BAA2B,CAAC,CAAC;EAEtE,MAAMK,cAAc,GAAGN,iBAAiB,CAACG,QAAQ,CAAC;EAElDJ,KAAK,CAACQ,kBAAkB,CAAC,MAAM;IAC7BH,cAAc,CAACE,cAAc,CAAC;EAChC,CAAC,CAAC;EAEFP,KAAK,CAACS,eAAe,CAACH,YAAY,CAAC;AACrC","ignoreList":[]}
|
|
@@ -87,20 +87,19 @@ export function useSyncState(getInitialState) {
|
|
|
87
87
|
rerender();
|
|
88
88
|
return unsubscribe;
|
|
89
89
|
}, [store]);
|
|
90
|
-
const
|
|
90
|
+
const pendingUpdates = useLazyValue(() => new Set());
|
|
91
91
|
const scheduleUpdate = useLatestCallback(callback => {
|
|
92
|
-
|
|
92
|
+
pendingUpdates.add(callback);
|
|
93
93
|
});
|
|
94
94
|
const flushUpdates = useLatestCallback(() => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
if (pendingUpdates.size !== 0) {
|
|
96
|
+
// Updates are queued child-first as insertion effects run bottom-up.
|
|
97
|
+
// The root navigator replaces the whole state while nested navigators merge into it.
|
|
98
|
+
// So we apply them root-first to avoid the root clobbering nested updates.
|
|
99
|
+
const callbacks = Array.from(pendingUpdates).reverse();
|
|
100
|
+
pendingUpdates.clear();
|
|
98
101
|
store.batchUpdates(() => {
|
|
99
|
-
|
|
100
|
-
// The root navigator replaces the whole state while nested navigators merge into it.
|
|
101
|
-
// So we apply them root-first to avoid the root clobbering nested updates.
|
|
102
|
-
pendingUpdates.reverse();
|
|
103
|
-
for (const update of pendingUpdates) {
|
|
102
|
+
for (const update of callbacks) {
|
|
104
103
|
update();
|
|
105
104
|
}
|
|
106
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLatestCallback","deepFreeze","useLazyValue","createStore","getInitialState","listeners","Set","initialized","state","getState","isBatching","didUpdate","notify","error","forEach","listener","e","value","setState","newState","subscribe","callback","add","delete","batchUpdates","useSyncState","store","rerender","useReducer","_","undefined","useEffect","unsubscribe","
|
|
1
|
+
{"version":3,"names":["React","useLatestCallback","deepFreeze","useLazyValue","createStore","getInitialState","listeners","Set","initialized","state","getState","isBatching","didUpdate","notify","error","forEach","listener","e","value","setState","newState","subscribe","callback","add","delete","batchUpdates","useSyncState","store","rerender","useReducer","_","undefined","useEffect","unsubscribe","pendingUpdates","scheduleUpdate","flushUpdates","size","callbacks","Array","from","reverse","clear","update"],"sourceRoot":"../../src","sources":["useSyncState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAIV,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAS,CAAC;AAYjB,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EAC5E,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,EAAE,KAAK,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAIV,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAS,CAAC;AAYjB,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EAC5E,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,EAAE,KAAK,CAAC,SAAS,CAAC,qBA4flB"}
|
|
@@ -22,10 +22,7 @@ export type GetStateListener = () => NavigationState;
|
|
|
22
22
|
export type GetNavigationListener = () => NavigationHelpers<ParamListBase>;
|
|
23
23
|
export type WithStackTrace = (entry: (...args: never[]) => void, callback: () => void) => void;
|
|
24
24
|
export type ChildBeforeRemoveListener = (action: NavigationAction, nextState: NavigationState | PartialState<NavigationState> | undefined) => boolean;
|
|
25
|
-
|
|
26
|
-
* Context which holds the required helpers needed to build nested navigators.
|
|
27
|
-
*/
|
|
28
|
-
export declare const NavigationBuilderContext: React.Context<{
|
|
25
|
+
type NavigationBuilderContextValue = {
|
|
29
26
|
onAction?: ((action: NavigationAction, visitedNavigators?: Set<string>) => boolean) | undefined;
|
|
30
27
|
addListener?: AddListener | undefined;
|
|
31
28
|
addKeyedListener?: AddKeyedListener | undefined;
|
|
@@ -37,10 +34,16 @@ export declare const NavigationBuilderContext: React.Context<{
|
|
|
37
34
|
target: string | undefined;
|
|
38
35
|
data: unknown;
|
|
39
36
|
}) => void;
|
|
40
|
-
onOptionsChange: (
|
|
37
|
+
onOptionsChange: () => void;
|
|
41
38
|
getIsStateEmitted: () => boolean;
|
|
42
39
|
scheduleUpdate: (callback: () => void) => void;
|
|
43
40
|
flushUpdates: () => void;
|
|
44
41
|
withStackTrace: WithStackTrace;
|
|
45
|
-
}
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Context which holds the required helpers needed to build nested navigators.
|
|
45
|
+
*/
|
|
46
|
+
export declare const NavigationBuilderContext: React.Context<NavigationBuilderContextValue | undefined>;
|
|
47
|
+
export declare function useNavigationBuilderContext(): NavigationBuilderContextValue;
|
|
48
|
+
export {};
|
|
46
49
|
//# sourceMappingURL=NavigationBuilderContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,yBAAyB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,qBAAqB,CAAC;IACrC,YAAY,EAAE,yBAAyB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EACpD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC9D,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO,CAAC;AAEb,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,CACzC,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,KACzC,CAAC,CAAC;AAEP,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EACxC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,KACnC;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EACjC,QAAQ,EAAE,MAAM,IAAI,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,KACnE,OAAO,CAAC;AAEb
|
|
1
|
+
{"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationIndependentTree.d.ts","sourceRoot":"","sources":["../../../src/NavigationIndependentTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationIndependentTree.d.ts","sourceRoot":"","sources":["../../../src/NavigationIndependentTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAiDA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationProvider.d.ts","sourceRoot":"","sources":["../../../src/NavigationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationProvider.d.ts","sourceRoot":"","sources":["../../../src/NavigationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAS9C;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;eAEvB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,iBAAiB,0DAElB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,eAAe,wBAA6B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;iBAE7B,CAAC;AAEb,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA6CxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreventRemoveProvider.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAmBF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"PreventRemoveProvider.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAmBF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA4FxD"}
|
|
@@ -8,6 +8,7 @@ type Props<State extends NavigationState, ScreenOptions extends {}> = {
|
|
|
8
8
|
navigation: NavigationProp<ParamListBase, string, State, ScreenOptions>;
|
|
9
9
|
route: Route<string>;
|
|
10
10
|
routeState: NavigationState | PartialState<NavigationState> | undefined;
|
|
11
|
+
getFocusedRouteKey: () => string | undefined;
|
|
11
12
|
getState: () => State;
|
|
12
13
|
setState: (state: State) => void;
|
|
13
14
|
subscribe: (callback: () => void) => () => void;
|
|
@@ -18,6 +19,6 @@ type Props<State extends NavigationState, ScreenOptions extends {}> = {
|
|
|
18
19
|
* Component which takes care of rendering the screen for a route.
|
|
19
20
|
* It provides all required contexts and applies optimizations when applicable.
|
|
20
21
|
*/
|
|
21
|
-
export declare function SceneView<State extends NavigationState, ScreenOptions extends {}>({ screen, route, navigation, routeState, getState, setState, subscribe, options, clearOptions, }: Props<State, ScreenOptions>): React.JSX.Element;
|
|
22
|
+
export declare function SceneView<State extends NavigationState, ScreenOptions extends {}>({ screen, route, navigation, routeState, getFocusedRouteKey, getState, setState, subscribe, options, clearOptions, }: Props<State, ScreenOptions>): React.JSX.Element;
|
|
22
23
|
export {};
|
|
23
24
|
//# sourceMappingURL=SceneView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,qBAsJ7B"}
|
|
1
|
+
{"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,kBAAkB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,qBAsJ7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPathFromState.d.ts","sourceRoot":"","sources":["../../../src/getPathFromState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"getPathFromState.d.ts","sourceRoot":"","sources":["../../../src/getPathFromState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS/E,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAS,CAAC;AAGzD,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACnC,CAAC;AAEF,KAAK,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;AAyF5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,MAAM,CA2TR"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
export type PatternPartRepeat = 'zero-or-more' | 'one-or-more';
|
|
1
2
|
export type PatternPart = {
|
|
2
3
|
segment: string;
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
name?: string;
|
|
5
|
+
pattern?: string;
|
|
5
6
|
optional?: boolean;
|
|
7
|
+
repeat?: PatternPartRepeat;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
10
|
* Parse a path into an array of parts with information about each segment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPatternParts.d.ts","sourceRoot":"","sources":["../../../src/getPatternParts.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"getPatternParts.d.ts","sourceRoot":"","sources":["../../../src/getPatternParts.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,aAAa,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CA0J3D;AAyBD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EACvD,WAAW,EAAE,CAAC,EAAE,EAChB,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,UAAQ,GACZ,CAAC,EAAE,CAWL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../../src/getStateFromPath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../../src/getStateFromPath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAU/E,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAS,CAAC;AAOzD,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACnC,CAAC;AA+KF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAC5B,QAAQ,CAAC,EAAE,eAAe,GACzB,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CA0L3C"}
|
|
@@ -13,6 +13,7 @@ export { NavigationHelpersContext } from './NavigationHelpersContext.js';
|
|
|
13
13
|
export { NavigationIndependentTree } from './NavigationIndependentTree.js';
|
|
14
14
|
export { NavigationMetaContext } from './NavigationMetaContext.js';
|
|
15
15
|
export { IsScreenContext, NavigationContext, NavigationProvider, NavigationRouteContext, } from './NavigationProvider.js';
|
|
16
|
+
export { NavigationRootContext } from './NavigationRootContext.js';
|
|
16
17
|
export { PreventRemoveContext } from './PreventRemoveContext.js';
|
|
17
18
|
export { PreventRemoveProvider } from './PreventRemoveProvider.js';
|
|
18
19
|
export { createPathConfigForStaticNavigation, createScreenFactory, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type StaticScreenFactory, type StaticScreenProps, } from './StaticNavigation.js';
|