react-native-screen-transitions 3.3.0-rc.2 → 3.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/LICENSE +21 -0
- package/README.md +51 -7
- package/lib/commonjs/blank-stack/components/stack-view.js +2 -1
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/blank-stack/components/stack-view.native.js +2 -1
- package/lib/commonjs/blank-stack/components/stack-view.native.js.map +1 -1
- package/lib/commonjs/component-stack/components/stack-view.js +2 -1
- package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/shared/animation/resolve-snap-target.js +48 -0
- package/lib/commonjs/shared/animation/resolve-snap-target.js.map +1 -0
- package/lib/commonjs/shared/animation/snap-to.js +35 -34
- package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
- package/lib/commonjs/shared/components/create-transition-aware-component.js +15 -7
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +3 -2
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +46 -9
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +7 -7
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js +23 -3
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container.js +2 -1
- package/lib/commonjs/shared/components/screen-container.js.map +1 -1
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +6 -6
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +7 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
- package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +12 -13
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js +5 -2
- package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
- package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js +14 -4
- package/lib/commonjs/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js +20 -0
- package/lib/commonjs/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +11 -8
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js +4 -1
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/commonjs/shared/providers/gestures.provider.js +17 -6
- package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/layout-anchor.provider.js +7 -5
- package/lib/commonjs/shared/providers/layout-anchor.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/register-bounds.provider.js +25 -6
- package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles.provider.js +1 -6
- package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/direct.provider.js +15 -16
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/managed.provider.js +19 -16
- package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds.store.js +46 -0
- package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/index.js +6 -4
- package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +9 -2
- package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +11 -1
- package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/validate-snap-points.js +11 -2
- package/lib/commonjs/shared/utils/gesture/validate-snap-points.js.map +1 -1
- package/lib/commonjs/shared/utils/overlay/visibility.js +19 -0
- package/lib/commonjs/shared/utils/overlay/visibility.js.map +1 -0
- package/lib/module/blank-stack/components/stack-view.js +2 -1
- package/lib/module/blank-stack/components/stack-view.js.map +1 -1
- package/lib/module/blank-stack/components/stack-view.native.js +2 -1
- package/lib/module/blank-stack/components/stack-view.native.js.map +1 -1
- package/lib/module/component-stack/components/stack-view.js +2 -1
- package/lib/module/component-stack/components/stack-view.js.map +1 -1
- package/lib/module/shared/animation/resolve-snap-target.js +44 -0
- package/lib/module/shared/animation/resolve-snap-target.js.map +1 -0
- package/lib/module/shared/animation/snap-to.js +34 -34
- package/lib/module/shared/animation/snap-to.js.map +1 -1
- package/lib/module/shared/components/create-transition-aware-component.js +16 -8
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +4 -2
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js +47 -11
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/overlay-host.js +7 -7
- package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/screen-overlay.js +24 -5
- package/lib/module/shared/components/overlay/variations/screen-overlay.js.map +1 -1
- package/lib/module/shared/components/screen-container.js +2 -1
- package/lib/module/shared/components/screen-container.js.map +1 -1
- package/lib/module/shared/hooks/animation/use-screen-animation.js +6 -6
- package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js +7 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +37 -8
- package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js +12 -13
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/module/shared/hooks/lifecycle/use-close-transition.js +5 -2
- package/lib/module/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
- package/lib/module/shared/hooks/lifecycle/use-screen-events.js +13 -4
- package/lib/module/shared/hooks/lifecycle/use-screen-events.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js +17 -0
- package/lib/module/shared/hooks/navigation/use-optimistic-focused-index.js.map +1 -0
- package/lib/module/shared/hooks/navigation/use-screen-state.js +12 -9
- package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js +4 -1
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/module/shared/providers/gestures.provider.js +17 -6
- package/lib/module/shared/providers/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/layout-anchor.provider.js +7 -5
- package/lib/module/shared/providers/layout-anchor.provider.js.map +1 -1
- package/lib/module/shared/providers/register-bounds.provider.js +25 -6
- package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/styles.provider.js +1 -6
- package/lib/module/shared/providers/screen/styles.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/direct.provider.js +15 -16
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/managed.provider.js +19 -16
- package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/module/shared/stores/bounds.store.js +46 -0
- package/lib/module/shared/stores/bounds.store.js.map +1 -1
- package/lib/module/shared/utils/bounds/index.js +6 -4
- package/lib/module/shared/utils/bounds/index.js.map +1 -1
- package/lib/module/shared/utils/gesture/determine-snap-target.js +9 -2
- package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
- package/lib/module/shared/utils/gesture/find-collapse-target.js +11 -1
- package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -1
- package/lib/module/shared/utils/gesture/validate-snap-points.js +11 -2
- package/lib/module/shared/utils/gesture/validate-snap-points.js.map +1 -1
- package/lib/module/shared/utils/overlay/visibility.js +12 -0
- package/lib/module/shared/utils/overlay/visibility.js.map +1 -0
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +1 -1
- package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/shared/animation/resolve-snap-target.d.ts +3 -0
- package/lib/typescript/shared/animation/resolve-snap-target.d.ts.map +1 -0
- package/lib/typescript/shared/animation/snap-to.d.ts +2 -0
- package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts +1 -0
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +7 -0
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +1 -1
- package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +0 -2
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/lifecycle/use-close-transition.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/lifecycle/use-screen-events.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts +7 -0
- package/lib/typescript/shared/hooks/navigation/use-optimistic-focused-index.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +6 -0
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/reanimated/use-shared-value-state.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +4 -0
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts +1 -1
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts +1 -0
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds.store.d.ts +2 -0
- package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +36 -1
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/validate-snap-points.d.ts.map +1 -1
- package/lib/typescript/shared/utils/overlay/visibility.d.ts +11 -0
- package/lib/typescript/shared/utils/overlay/visibility.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/blank-stack/components/stack-view.native.tsx +2 -1
- package/src/blank-stack/components/stack-view.tsx +2 -1
- package/src/component-stack/components/stack-view.tsx +2 -1
- package/src/shared/animation/resolve-snap-target.ts +53 -0
- package/src/shared/animation/snap-to.ts +47 -38
- package/src/shared/components/create-transition-aware-component.tsx +34 -10
- package/src/shared/components/overlay/helpers/get-active-overlay.ts +3 -2
- package/src/shared/components/overlay/variations/float-overlay.tsx +53 -8
- package/src/shared/components/overlay/variations/overlay-host.tsx +16 -6
- package/src/shared/components/overlay/variations/screen-overlay.tsx +35 -3
- package/src/shared/components/screen-container.tsx +15 -9
- package/src/shared/hooks/animation/use-screen-animation.tsx +8 -8
- package/src/shared/hooks/gestures/use-build-gestures.tsx +5 -1
- package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +63 -16
- package/src/shared/hooks/gestures/use-scroll-registry.tsx +10 -9
- package/src/shared/hooks/lifecycle/use-close-transition.ts +6 -3
- package/src/shared/hooks/lifecycle/use-screen-events.ts +15 -4
- package/src/shared/hooks/navigation/use-optimistic-focused-index.ts +19 -0
- package/src/shared/hooks/navigation/use-screen-state.tsx +24 -8
- package/src/shared/hooks/reanimated/use-shared-value-state.ts +4 -1
- package/src/shared/providers/gestures.provider.tsx +49 -22
- package/src/shared/providers/layout-anchor.provider.tsx +28 -25
- package/src/shared/providers/register-bounds.provider.tsx +43 -6
- package/src/shared/providers/screen/styles.provider.tsx +1 -7
- package/src/shared/providers/stack/direct.provider.tsx +18 -19
- package/src/shared/providers/stack/managed.provider.tsx +22 -19
- package/src/shared/stores/bounds.store.ts +56 -0
- package/src/shared/types/screen.types.ts +39 -1
- package/src/shared/utils/bounds/index.ts +6 -4
- package/src/shared/utils/gesture/determine-snap-target.ts +15 -4
- package/src/shared/utils/gesture/find-collapse-target.ts +11 -1
- package/src/shared/utils/gesture/validate-snap-points.ts +15 -2
- package/src/shared/utils/overlay/visibility.ts +23 -0
|
@@ -11,6 +11,7 @@ var _reactNativeReanimated = require("react-native-reanimated");
|
|
|
11
11
|
var _useStack = require("../../hooks/navigation/use-stack");
|
|
12
12
|
var _animation = require("../../stores/animation.store");
|
|
13
13
|
var _history = require("../../stores/history.store");
|
|
14
|
+
var _visibility = require("../../utils/overlay/visibility");
|
|
14
15
|
var _core = require("./core.provider");
|
|
15
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -48,11 +49,13 @@ function useDirectStackValue(props) {
|
|
|
48
49
|
shouldShowFloatOverlay,
|
|
49
50
|
routeKeys,
|
|
50
51
|
allRoutes,
|
|
51
|
-
allDescriptors
|
|
52
|
+
allDescriptors,
|
|
53
|
+
animationMaps
|
|
52
54
|
} = (0, _react.useMemo)(() => {
|
|
53
55
|
const allRoutes = state.routes.concat(state.preloadedRoutes);
|
|
54
56
|
const scenes = [];
|
|
55
57
|
const routeKeys = [];
|
|
58
|
+
const animationMaps = [];
|
|
56
59
|
const allDescriptors = {
|
|
57
60
|
...preloadedDescriptors,
|
|
58
61
|
...descriptors
|
|
@@ -67,9 +70,10 @@ function useDirectStackValue(props) {
|
|
|
67
70
|
isPreloaded
|
|
68
71
|
});
|
|
69
72
|
routeKeys.push(route.key);
|
|
73
|
+
animationMaps.push(_animation.AnimationStore.getAll(route.key));
|
|
70
74
|
if (!shouldShowFloatOverlay && descriptor) {
|
|
71
75
|
const options = descriptor.options;
|
|
72
|
-
if (options?.enableTransitions === true &&
|
|
76
|
+
if (options?.enableTransitions === true && (0, _visibility.isFloatOverlayVisible)(options)) {
|
|
73
77
|
shouldShowFloatOverlay = true;
|
|
74
78
|
}
|
|
75
79
|
}
|
|
@@ -79,12 +83,10 @@ function useDirectStackValue(props) {
|
|
|
79
83
|
shouldShowFloatOverlay,
|
|
80
84
|
routeKeys,
|
|
81
85
|
allRoutes,
|
|
82
|
-
allDescriptors
|
|
86
|
+
allDescriptors,
|
|
87
|
+
animationMaps
|
|
83
88
|
};
|
|
84
|
-
}, [state.routes, state.preloadedRoutes,
|
|
85
|
-
|
|
86
|
-
// Get animation store maps for all routes
|
|
87
|
-
const animationMaps = (0, _react.useMemo)(() => allRoutes.map(route => _animation.AnimationStore.getAll(route.key)), [allRoutes]);
|
|
89
|
+
}, [state.routes, state.preloadedRoutes, preloadedDescriptors, descriptors]);
|
|
88
90
|
const stackProgress = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
89
91
|
"worklet";
|
|
90
92
|
|
|
@@ -97,15 +99,12 @@ function useDirectStackValue(props) {
|
|
|
97
99
|
const optimisticFocusedIndex = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
98
100
|
"worklet";
|
|
99
101
|
|
|
100
|
-
const
|
|
101
|
-
let
|
|
102
|
-
for (let i =
|
|
103
|
-
if (animationMaps[i].closing.value > 0)
|
|
104
|
-
isAnyClosing = true;
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
102
|
+
const lastIndex = animationMaps.length - 1;
|
|
103
|
+
let closingFromTop = 0;
|
|
104
|
+
for (let i = lastIndex; i >= 0; i--) {
|
|
105
|
+
if (animationMaps[i].closing.value > 0) closingFromTop++;else break;
|
|
107
106
|
}
|
|
108
|
-
return
|
|
107
|
+
return lastIndex - closingFromTop;
|
|
109
108
|
});
|
|
110
109
|
const focusedIndex = state.index;
|
|
111
110
|
const stackContextValue = (0, _react.useMemo)(() => ({
|
|
@@ -117,7 +116,7 @@ function useDirectStackValue(props) {
|
|
|
117
116
|
focusedIndex,
|
|
118
117
|
stackProgress,
|
|
119
118
|
optimisticFocusedIndex
|
|
120
|
-
}), [routeKeys, allRoutes,
|
|
119
|
+
}), [routeKeys, allRoutes, scenes, focusedIndex, stackProgress, optimisticFocusedIndex, flags, allDescriptors]);
|
|
121
120
|
|
|
122
121
|
// DirectStack context value
|
|
123
122
|
const lifecycleValue = (0, _react.useMemo)(() => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNativeReanimated","_useStack","_animation","_history","_core","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DirectStackContext","createContext","displayName","useDirectStackContext","context","useContext","Error","useDirectStackValue","props","state","navigation","descriptors","describe","flags","useStackCoreContext","preloadedDescriptors","useMemo","preloadedRoutes","reduce","acc","route","key","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","allDescriptors","routes","concat","descriptor","isPreloaded","undefined","push","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNativeReanimated","_useStack","_animation","_history","_visibility","_core","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DirectStackContext","createContext","displayName","useDirectStackContext","context","useContext","Error","useDirectStackValue","props","state","navigation","descriptors","describe","flags","useStackCoreContext","preloadedDescriptors","useMemo","preloadedRoutes","reduce","acc","route","key","scenes","shouldShowFloatOverlay","routeKeys","allRoutes","allDescriptors","animationMaps","routes","concat","descriptor","isPreloaded","undefined","push","AnimationStore","getAll","options","enableTransitions","isFloatOverlayVisible","stackProgress","useDerivedValue","total","length","progress","value","optimisticFocusedIndex","lastIndex","closingFromTop","closing","focusedIndex","index","stackContextValue","lifecycleValue","withDirectStack","Component","DirectStackProvider","navigatorKey","useEffect","HistoryStore","clearNavigator","jsx","StackContext","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/direct.provider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ var _reactNativeReanimated = require("react-native-reanimated");
|
|
|
11
11
|
var _useStack = require("../../hooks/navigation/use-stack");
|
|
12
12
|
var _animation = require("../../stores/animation.store");
|
|
13
13
|
var _history = require("../../stores/history.store");
|
|
14
|
+
var _visibility = require("../../utils/overlay/visibility");
|
|
14
15
|
var _core = require("./core.provider");
|
|
15
16
|
var _useLocalRoutes = require("./helpers/use-local-routes");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -47,18 +48,21 @@ function useManagedStackValue(props) {
|
|
|
47
48
|
activeScreensLimit,
|
|
48
49
|
shouldShowFloatOverlay,
|
|
49
50
|
routeKeys,
|
|
50
|
-
backdropBehaviors
|
|
51
|
+
backdropBehaviors,
|
|
52
|
+
animationMaps
|
|
51
53
|
} = (0, _react.useMemo)(() => {
|
|
52
54
|
const routes = state.routes;
|
|
55
|
+
const descriptors = state.descriptors;
|
|
53
56
|
const scenes = [];
|
|
54
57
|
const routeKeys = [];
|
|
55
58
|
const backdropBehaviors = [];
|
|
59
|
+
const animationMaps = [];
|
|
56
60
|
let shouldShowFloatOverlay = false;
|
|
57
61
|
let limit = 1;
|
|
58
62
|
let stopLimit = false;
|
|
59
63
|
for (let i = routes.length - 1; i >= 0; i--) {
|
|
60
64
|
const route = routes[i];
|
|
61
|
-
const descriptor =
|
|
65
|
+
const descriptor = descriptors[route.key];
|
|
62
66
|
const options = descriptor?.options;
|
|
63
67
|
scenes[i] = {
|
|
64
68
|
route,
|
|
@@ -66,8 +70,9 @@ function useManagedStackValue(props) {
|
|
|
66
70
|
};
|
|
67
71
|
routeKeys[i] = route.key;
|
|
68
72
|
backdropBehaviors[i] = options?.backdropBehavior ?? "block";
|
|
73
|
+
animationMaps[i] = _animation.AnimationStore.getAll(route.key);
|
|
69
74
|
if (!shouldShowFloatOverlay) {
|
|
70
|
-
shouldShowFloatOverlay =
|
|
75
|
+
shouldShowFloatOverlay = (0, _visibility.isFloatOverlayVisible)(options);
|
|
71
76
|
}
|
|
72
77
|
if (!stopLimit) {
|
|
73
78
|
const shouldKeepPrevious = options?.detachPreviousScreen !== true;
|
|
@@ -84,13 +89,11 @@ function useManagedStackValue(props) {
|
|
|
84
89
|
routeKeys,
|
|
85
90
|
backdropBehaviors,
|
|
86
91
|
activeScreensLimit,
|
|
87
|
-
shouldShowFloatOverlay
|
|
92
|
+
shouldShowFloatOverlay,
|
|
93
|
+
animationMaps
|
|
88
94
|
};
|
|
89
95
|
}, [state.routes, state.descriptors]);
|
|
90
96
|
|
|
91
|
-
// Get animation store maps for LOCAL routes (including closing routes)
|
|
92
|
-
const animationMaps = (0, _react.useMemo)(() => state.routes.map(route => _animation.AnimationStore.getAll(route.key)), [state.routes]);
|
|
93
|
-
|
|
94
97
|
// Aggregated stack progress from LOCAL routes (includes closing routes)
|
|
95
98
|
const stackProgress = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
96
99
|
"worklet";
|
|
@@ -102,19 +105,19 @@ function useManagedStackValue(props) {
|
|
|
102
105
|
return total;
|
|
103
106
|
});
|
|
104
107
|
|
|
105
|
-
// Optimistic focused index: accounts for closing screens
|
|
108
|
+
// Optimistic focused index: accounts for closing screens.
|
|
109
|
+
// Counts consecutive closing screens from the top of the stack so that
|
|
110
|
+
// rapid dismiss chains (e.g. dismiss C then B while C is still in flight)
|
|
111
|
+
// correctly identify the actual focused screen for pointer-event gating.
|
|
106
112
|
const optimisticFocusedIndex = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
107
113
|
"worklet";
|
|
108
114
|
|
|
109
|
-
const
|
|
110
|
-
let
|
|
111
|
-
for (let i =
|
|
112
|
-
if (animationMaps[i].closing.value > 0)
|
|
113
|
-
isAnyClosing = true;
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
115
|
+
const lastIndex = animationMaps.length - 1;
|
|
116
|
+
let closingFromTop = 0;
|
|
117
|
+
for (let i = lastIndex; i >= 0; i--) {
|
|
118
|
+
if (animationMaps[i].closing.value > 0) closingFromTop++;else break;
|
|
116
119
|
}
|
|
117
|
-
return
|
|
120
|
+
return lastIndex - closingFromTop;
|
|
118
121
|
});
|
|
119
122
|
const focusedIndex = props.state.index;
|
|
120
123
|
const stackContextValue = (0, _react.useMemo)(() => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNativeReanimated","_useStack","_animation","_history","_core","_useLocalRoutes","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","useStackCoreContext","state","handleCloseRoute","closingRouteKeys","useLocalRoutes","scenes","activeScreensLimit","shouldShowFloatOverlay","routeKeys","backdropBehaviors","useMemo","routes","limit","stopLimit","length","route","descriptor","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNativeReanimated","_useStack","_animation","_history","_visibility","_core","_useLocalRoutes","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ManagedStackContext","createContext","displayName","useManagedStackContext","context","useContext","Error","useManagedStackValue","props","flags","useStackCoreContext","state","handleCloseRoute","closingRouteKeys","useLocalRoutes","scenes","activeScreensLimit","shouldShowFloatOverlay","routeKeys","backdropBehaviors","animationMaps","useMemo","routes","descriptors","limit","stopLimit","length","route","descriptor","key","options","backdropBehavior","AnimationStore","getAll","isFloatOverlayVisible","shouldKeepPrevious","detachPreviousScreen","Math","min","stackProgress","useDerivedValue","total","progress","value","optimisticFocusedIndex","lastIndex","closingFromTop","closing","focusedIndex","index","stackContextValue","lifecycleValue","closingRouteKeysShared","shared","withManagedStack","Component","ManagedStackProvider","navigatorKey","useEffect","HistoryStore","clearNavigator","jsx","StackContext","Provider","children"],"sourceRoot":"../../../../../src","sources":["shared/providers/stack/managed.provider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,6 +48,51 @@ function setLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
|
48
48
|
return state;
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
+
function updateLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
52
|
+
"worklet";
|
|
53
|
+
|
|
54
|
+
registry.modify(state => {
|
|
55
|
+
"worklet";
|
|
56
|
+
|
|
57
|
+
const stack = state[tag]?.linkStack;
|
|
58
|
+
if (!stack || stack.length === 0) return state;
|
|
59
|
+
let targetIndex = -1;
|
|
60
|
+
|
|
61
|
+
// Prefer the most recent completed link first.
|
|
62
|
+
// NOTE: matchesScreenKey is inlined here to avoid a Reanimated
|
|
63
|
+
// workletization crash caused by nested worklet function calls
|
|
64
|
+
// inside registry.modify callbacks.
|
|
65
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
66
|
+
const link = stack[i];
|
|
67
|
+
const src = link.source;
|
|
68
|
+
const srcMatches = src && (src.screenKey === screenKey || (src.ancestorKeys?.includes(screenKey) ?? false));
|
|
69
|
+
if (link.destination && srcMatches) {
|
|
70
|
+
targetIndex = i;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Fallback to pending links when no completed link matches.
|
|
76
|
+
if (targetIndex === -1) {
|
|
77
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
78
|
+
const src = stack[i].source;
|
|
79
|
+
if (src && (src.screenKey === screenKey || (src.ancestorKeys?.includes(screenKey) ?? false))) {
|
|
80
|
+
targetIndex = i;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (targetIndex !== -1) {
|
|
86
|
+
stack[targetIndex].source = {
|
|
87
|
+
screenKey,
|
|
88
|
+
ancestorKeys,
|
|
89
|
+
bounds,
|
|
90
|
+
styles
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return state;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
51
96
|
function setLinkDestination(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
52
97
|
"worklet";
|
|
53
98
|
|
|
@@ -178,6 +223,7 @@ const BoundStore = exports.BoundStore = {
|
|
|
178
223
|
registerSnapshot,
|
|
179
224
|
setLinkSource,
|
|
180
225
|
setLinkDestination,
|
|
226
|
+
updateLinkSource,
|
|
181
227
|
getActiveLink,
|
|
182
228
|
getSnapshot,
|
|
183
229
|
clear
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeReanimated","require","registry","makeMutable","registerSnapshot","tag","screenKey","bounds","styles","ancestorKeys","modify","state","snapshots","linkStack","setLinkSource","push","source","destination","
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","registry","makeMutable","registerSnapshot","tag","screenKey","bounds","styles","ancestorKeys","modify","state","snapshots","linkStack","setLinkSource","push","source","destination","updateLinkSource","stack","length","targetIndex","i","link","src","srcMatches","includes","setLinkDestination","matchesScreenKey","identifier","key","getSnapshot","tagState","value","snap","getActiveLink","isSource","isDestination","lastLink","clear","filter","sourceMatches","destMatches","BoundStore","exports"],"sourceRoot":"../../../../src","sources":["shared/stores/bounds.store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,13 +16,15 @@ const resolveBounds = props => {
|
|
|
16
16
|
const entering = !props.next;
|
|
17
17
|
const fullscreen = (0, _constants.FULLSCREEN_DIMENSIONS)(props.dimensions);
|
|
18
18
|
const isFullscreenTarget = props.computeOptions.target === "fullscreen";
|
|
19
|
+
const hasCustomTarget = typeof props.computeOptions.target === "object";
|
|
20
|
+
const hasTargetOverride = isFullscreenTarget || hasCustomTarget;
|
|
19
21
|
|
|
20
22
|
// Try exact match first (strict matching for nested stacks)
|
|
21
23
|
let link = _bounds.BoundStore.getActiveLink(props.id, props.current?.route.key);
|
|
22
24
|
|
|
23
|
-
// For
|
|
25
|
+
// For target overrides, fall back to most recent link for this tag
|
|
24
26
|
// (destination screen might not have a matching element)
|
|
25
|
-
if (!link &&
|
|
27
|
+
if (!link && hasTargetOverride) {
|
|
26
28
|
link = _bounds.BoundStore.getActiveLink(props.id); // No screenKey = get most recent
|
|
27
29
|
}
|
|
28
30
|
if (!link || !link.source) {
|
|
@@ -33,8 +35,8 @@ const resolveBounds = props => {
|
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
//
|
|
37
|
-
if (!
|
|
38
|
+
// When target is overridden, destination element is not required
|
|
39
|
+
if (!hasTargetOverride && !link.destination) {
|
|
38
40
|
return {
|
|
39
41
|
start: null,
|
|
40
42
|
end: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeReanimated","require","_constants","_bounds","_geometry","_interpolateStyle","_styleComposers","resolveBounds","props","entering","next","fullscreen","FULLSCREEN_DIMENSIONS","dimensions","isFullscreenTarget","computeOptions","target","link","BoundStore","getActiveLink","id","current","route","key","source","start","end","destination","bounds","customTarget","computeBoundStyles","previous","progress","raw","EMPTY_BOUND_HELPER_RESULT_RAW","EMPTY_BOUND_HELPER_RESULT","ranges","ENTER_RANGE","EXIT_RANGE","method","geometry","computeContentTransformGeometry","anchor","scaleMode","composeContentStyle","computeRelativeGeometry","common","isSize","isAbs","space","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","createBounds","boundsFunction","params","layouts","screen","getSnapshot","tag","getLink","styles","interpolateStyle","property","fallback","interpolateLinkStyle","interpolateBounds","fallbackOrTargetKey","range","targetKey","currentKey","fb","currentSnapshot","targetSnapshot","currentValue","targetValue","interpolate","sourceValue","destValue","Object","assign","exports"],"sourceRoot":"../../../../../src","sources":["shared/utils/bounds/index.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAOA,IAAAE,OAAA,GAAAF,OAAA;AAOA,IAAAG,SAAA,GAAAH,OAAA;AAIA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAaA,MAAMM,aAAa,GAAIC,KAQtB,IAAK;EACL,SAAS;;EACT,MAAMC,QAAQ,GAAG,CAACD,KAAK,CAACE,IAAI;EAC5B,MAAMC,UAAU,GAAG,IAAAC,gCAAqB,EAACJ,KAAK,CAACK,UAAU,CAAC;EAE1D,MAAMC,kBAAkB,GAAGN,KAAK,CAACO,cAAc,CAACC,MAAM,KAAK,YAAY;;
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_constants","_bounds","_geometry","_interpolateStyle","_styleComposers","resolveBounds","props","entering","next","fullscreen","FULLSCREEN_DIMENSIONS","dimensions","isFullscreenTarget","computeOptions","target","hasCustomTarget","hasTargetOverride","link","BoundStore","getActiveLink","id","current","route","key","source","start","end","destination","bounds","customTarget","computeBoundStyles","previous","progress","raw","EMPTY_BOUND_HELPER_RESULT_RAW","EMPTY_BOUND_HELPER_RESULT","ranges","ENTER_RANGE","EXIT_RANGE","method","geometry","computeContentTransformGeometry","anchor","scaleMode","composeContentStyle","computeRelativeGeometry","common","isSize","isAbs","space","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","createBounds","boundsFunction","params","layouts","screen","getSnapshot","tag","getLink","styles","interpolateStyle","property","fallback","interpolateLinkStyle","interpolateBounds","fallbackOrTargetKey","range","targetKey","currentKey","fb","currentSnapshot","targetSnapshot","currentValue","targetValue","interpolate","sourceValue","destValue","Object","assign","exports"],"sourceRoot":"../../../../../src","sources":["shared/utils/bounds/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,9 +26,16 @@ function determineSnapTarget({
|
|
|
26
26
|
|
|
27
27
|
// Project where we'd end up with velocity
|
|
28
28
|
const projectedProgress = currentProgress - velocityInProgress;
|
|
29
|
+
const sanitizedSnapPoints = snapPoints.filter(point => canDismiss ? Number.isFinite(point) : Number.isFinite(point) && point > 0);
|
|
29
30
|
|
|
30
31
|
// Build all possible targets: dismiss (0) only if allowed, plus all snap points
|
|
31
|
-
const allTargets = canDismiss ? [0, ...
|
|
32
|
+
const allTargets = Array.from(new Set(canDismiss ? [0, ...sanitizedSnapPoints] : sanitizedSnapPoints)).sort((a, b) => a - b);
|
|
33
|
+
if (allTargets.length === 0) {
|
|
34
|
+
return {
|
|
35
|
+
targetProgress: currentProgress,
|
|
36
|
+
shouldDismiss: false
|
|
37
|
+
};
|
|
38
|
+
}
|
|
32
39
|
|
|
33
40
|
// Find the target whose zone contains the projected progress
|
|
34
41
|
// Zones are split at midpoints between adjacent targets
|
|
@@ -50,7 +57,7 @@ function determineSnapTarget({
|
|
|
50
57
|
}
|
|
51
58
|
return {
|
|
52
59
|
targetProgress,
|
|
53
|
-
shouldDismiss: targetProgress === 0
|
|
60
|
+
shouldDismiss: canDismiss && targetProgress === 0
|
|
54
61
|
};
|
|
55
62
|
}
|
|
56
63
|
//# sourceMappingURL=determine-snap-target.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["determineSnapTarget","currentProgress","snapPoints","velocity","dimension","velocityFactor","canDismiss","velocityInProgress","projectedProgress","allTargets","sort","a","b","targetProgress","
|
|
1
|
+
{"version":3,"names":["determineSnapTarget","currentProgress","snapPoints","velocity","dimension","velocityFactor","canDismiss","velocityInProgress","projectedProgress","sanitizedSnapPoints","filter","point","Number","isFinite","allTargets","Array","from","Set","sort","a","b","length","targetProgress","shouldDismiss","i","current","next","undefined","midpoint"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/determine-snap-target.ts"],"mappings":";;;;;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAC;EACnCC,eAAe;EACfC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC,cAAc,GAAG,GAAG;EACpBC,UAAU,GAAG;AACY,CAAC,EAA6B;EACvD,SAAS;;EAET;EACA,MAAMC,kBAAkB,GAAIJ,QAAQ,GAAGC,SAAS,GAAIC,cAAc;;EAElE;EACA,MAAMG,iBAAiB,GAAGP,eAAe,GAAGM,kBAAkB;EAE9D,MAAME,mBAAmB,GAAGP,UAAU,CAACQ,MAAM,CAAEC,KAAK,IACnDL,UAAU,GAAGM,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAGC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,GAAG,CACzE,CAAC;;EAED;EACA,MAAMG,UAAU,GAAGC,KAAK,CAACC,IAAI,CAC5B,IAAIC,GAAG,CAACX,UAAU,GAAG,CAAC,CAAC,EAAE,GAAGG,mBAAmB,CAAC,GAAGA,mBAAmB,CACvE,CAAC,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EAEvB,IAAIN,UAAU,CAACO,MAAM,KAAK,CAAC,EAAE;IAC5B,OAAO;MACNC,cAAc,EAAErB,eAAe;MAC/BsB,aAAa,EAAE;IAChB,CAAC;EACF;;EAEA;EACA;EACA,IAAID,cAAc,GAAGR,UAAU,CAAC,CAAC,CAAC;EAElC,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,UAAU,CAACO,MAAM,EAAEG,CAAC,EAAE,EAAE;IAC3C,MAAMC,OAAO,GAAGX,UAAU,CAACU,CAAC,CAAC;IAC7B,MAAME,IAAI,GAAGZ,UAAU,CAACU,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAIE,IAAI,KAAKC,SAAS,EAAE;MACvB;MACAL,cAAc,GAAGG,OAAO;MACxB;IACD;IAEA,MAAMG,QAAQ,GAAG,CAACH,OAAO,GAAGC,IAAI,IAAI,CAAC;IAErC,IAAIlB,iBAAiB,GAAGoB,QAAQ,EAAE;MACjCN,cAAc,GAAGG,OAAO;MACxB;IACD;IAEAH,cAAc,GAAGI,IAAI;EACtB;EAEA,OAAO;IACNJ,cAAc;IACdC,aAAa,EAAEjB,UAAU,IAAIgB,cAAc,KAAK;EACjD,CAAC;AACF","ignoreList":[]}
|
|
@@ -18,7 +18,17 @@ var _constants = require("../../constants");
|
|
|
18
18
|
function findCollapseTarget(currentProgress, snapPoints, canDismiss) {
|
|
19
19
|
"worklet";
|
|
20
20
|
|
|
21
|
-
const
|
|
21
|
+
const normalized = snapPoints.filter(point => canDismiss ? Number.isFinite(point) : Number.isFinite(point) && point > 0);
|
|
22
|
+
if (normalized.length === 0) {
|
|
23
|
+
return canDismiss ? {
|
|
24
|
+
target: 0,
|
|
25
|
+
shouldDismiss: true
|
|
26
|
+
} : {
|
|
27
|
+
target: currentProgress,
|
|
28
|
+
shouldDismiss: false
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const sorted = [...normalized].sort((a, b) => a - b);
|
|
22
32
|
const minSnap = sorted[0];
|
|
23
33
|
|
|
24
34
|
// Find next lower snap point
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","findCollapseTarget","currentProgress","snapPoints","canDismiss","
|
|
1
|
+
{"version":3,"names":["_constants","require","findCollapseTarget","currentProgress","snapPoints","canDismiss","normalized","filter","point","Number","isFinite","length","target","shouldDismiss","sorted","sort","a","b","minSnap","i","EPSILON"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/find-collapse-target.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CACjCC,eAAuB,EACvBC,UAAoB,EACpBC,UAAmB,EACQ;EAC3B,SAAS;;EAET,MAAMC,UAAU,GAAGF,UAAU,CAACG,MAAM,CAAEC,KAAK,IAC1CH,UAAU,GAAGI,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAGC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,GAAG,CACzE,CAAC;EAED,IAAIF,UAAU,CAACK,MAAM,KAAK,CAAC,EAAE;IAC5B,OAAON,UAAU,GACd;MAAEO,MAAM,EAAE,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC,GAClC;MAAED,MAAM,EAAET,eAAe;MAAEU,aAAa,EAAE;IAAM,CAAC;EACrD;EAEA,MAAMC,MAAM,GAAG,CAAC,GAAGR,UAAU,CAAC,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EACpD,MAAMC,OAAO,GAAGJ,MAAM,CAAC,CAAC,CAAC;;EAEzB;EACA,KAAK,IAAIK,CAAC,GAAGL,MAAM,CAACH,MAAM,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC5C,IAAIL,MAAM,CAACK,CAAC,CAAC,GAAGhB,eAAe,GAAGiB,kBAAO,EAAE;MAC1C,OAAO;QAAER,MAAM,EAAEE,MAAM,CAACK,CAAC,CAAC;QAAEN,aAAa,EAAE;MAAM,CAAC;IACnD;EACD;;EAEA;EACA,IAAIR,UAAU,EAAE;IACf,OAAO;MAAEO,MAAM,EAAE,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC;EAC1C;;EAEA;EACA,OAAO;IAAED,MAAM,EAAEM,OAAO;IAAEL,aAAa,EAAE;EAAM,CAAC;AACjD","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ const validateSnapPoints = ({
|
|
|
8
8
|
snapPoints,
|
|
9
9
|
canDismiss
|
|
10
10
|
}) => {
|
|
11
|
-
if (!snapPoints) {
|
|
11
|
+
if (!snapPoints || snapPoints.length === 0) {
|
|
12
12
|
return {
|
|
13
13
|
hasSnapPoints: false,
|
|
14
14
|
snapPoints: [],
|
|
@@ -16,7 +16,16 @@ const validateSnapPoints = ({
|
|
|
16
16
|
maxSnapPoint: -1
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
const
|
|
19
|
+
const normalizedSnaps = snapPoints.filter(point => canDismiss ? Number.isFinite(point) : Number.isFinite(point) && point > 0);
|
|
20
|
+
if (normalizedSnaps.length === 0) {
|
|
21
|
+
return {
|
|
22
|
+
hasSnapPoints: false,
|
|
23
|
+
snapPoints: [],
|
|
24
|
+
minSnapPoint: -1,
|
|
25
|
+
maxSnapPoint: -1
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const sortedSnaps = normalizedSnaps.slice().sort((a, b) => a - b);
|
|
20
29
|
// Clamp to snap point bounds (dismiss at 0 only if allowed)
|
|
21
30
|
const minProgress = canDismiss ? 0 : sortedSnaps[0];
|
|
22
31
|
const maxProgress = sortedSnaps[sortedSnaps.length - 1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateSnapPoints","snapPoints","canDismiss","hasSnapPoints","minSnapPoint","maxSnapPoint","sortedSnaps","slice","sort","a","b","minProgress","maxProgress","
|
|
1
|
+
{"version":3,"names":["validateSnapPoints","snapPoints","canDismiss","length","hasSnapPoints","minSnapPoint","maxSnapPoint","normalizedSnaps","filter","point","Number","isFinite","sortedSnaps","slice","sort","a","b","minProgress","maxProgress","exports"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/validate-snap-points.ts"],"mappings":";;;;;;AAYO,MAAMA,kBAAkB,GAAGA,CAAC;EAClCC,UAAU;EACVC;AAC0B,CAAC,KAA+B;EAC1D,IAAI,CAACD,UAAU,IAAIA,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE;IAC3C,OAAO;MACNC,aAAa,EAAE,KAAK;MACpBH,UAAU,EAAE,EAAE;MACdI,YAAY,EAAE,CAAC,CAAC;MAChBC,YAAY,EAAE,CAAC;IAChB,CAAC;EACF;EAEA,MAAMC,eAAe,GAAGN,UAAU,CAACO,MAAM,CAAEC,KAAK,IAC/CP,UAAU,GAAGQ,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAGC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,GAAG,CACzE,CAAC;EAED,IAAIF,eAAe,CAACJ,MAAM,KAAK,CAAC,EAAE;IACjC,OAAO;MACNC,aAAa,EAAE,KAAK;MACpBH,UAAU,EAAE,EAAE;MACdI,YAAY,EAAE,CAAC,CAAC;MAChBC,YAAY,EAAE,CAAC;IAChB,CAAC;EACF;EAEA,MAAMM,WAAW,GAAGL,eAAe,CAACM,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EACjE;EACA,MAAMC,WAAW,GAAGf,UAAU,GAAG,CAAC,GAAGU,WAAW,CAAC,CAAC,CAAC;EACnD,MAAMM,WAAW,GAAGN,WAAW,CAACA,WAAW,CAACT,MAAM,GAAG,CAAC,CAAC;EAEvD,OAAO;IACNC,aAAa,EAAE,IAAI;IACnBH,UAAU,EAAEW,WAAW;IACvBP,YAAY,EAAEY,WAAW;IACzBX,YAAY,EAAEY;EACf,CAAC;AACF,CAAC;AAACC,OAAA,CAAAnB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isScreenOverlayVisible = exports.isOverlayVisible = exports.isFloatOverlayVisible = void 0;
|
|
7
|
+
const isOverlayVisible = options => {
|
|
8
|
+
return Boolean(options?.overlay) && options?.overlayShown !== false;
|
|
9
|
+
};
|
|
10
|
+
exports.isOverlayVisible = isOverlayVisible;
|
|
11
|
+
const isFloatOverlayVisible = options => {
|
|
12
|
+
return isOverlayVisible(options) && options?.overlayMode !== "screen";
|
|
13
|
+
};
|
|
14
|
+
exports.isFloatOverlayVisible = isFloatOverlayVisible;
|
|
15
|
+
const isScreenOverlayVisible = options => {
|
|
16
|
+
return isOverlayVisible(options) && options?.overlayMode === "screen";
|
|
17
|
+
};
|
|
18
|
+
exports.isScreenOverlayVisible = isScreenOverlayVisible;
|
|
19
|
+
//# sourceMappingURL=visibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isOverlayVisible","options","Boolean","overlay","overlayShown","exports","isFloatOverlayVisible","overlayMode","isScreenOverlayVisible"],"sourceRoot":"../../../../../src","sources":["shared/utils/overlay/visibility.ts"],"mappings":";;;;;;AAQO,MAAMA,gBAAgB,GAAIC,OAA4B,IAAc;EAC1E,OAAOC,OAAO,CAACD,OAAO,EAAEE,OAAO,CAAC,IAAIF,OAAO,EAAEG,YAAY,KAAK,KAAK;AACpE,CAAC;AAACC,OAAA,CAAAL,gBAAA,GAAAA,gBAAA;AAEK,MAAMM,qBAAqB,GACjCL,OAA4B,IACf;EACb,OAAOD,gBAAgB,CAACC,OAAO,CAAC,IAAIA,OAAO,EAAEM,WAAW,KAAK,QAAQ;AACtE,CAAC;AAACF,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AAEK,MAAME,sBAAsB,GAClCP,OAA4B,IACf;EACb,OAAOD,gBAAgB,CAACC,OAAO,CAAC,IAAIA,OAAO,EAAEM,WAAW,KAAK,QAAQ;AACtE,CAAC;AAACF,OAAA,CAAAG,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ import { Overlay } from "../../shared/components/overlay";
|
|
|
9
9
|
import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
|
|
10
10
|
import { withStackCore } from "../../shared/providers/stack/core.provider";
|
|
11
11
|
import { withManagedStack } from "../../shared/providers/stack/managed.provider";
|
|
12
|
+
import { isScreenOverlayVisible } from "../../shared/utils/overlay/visibility";
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
14
|
function isFabric() {
|
|
14
15
|
return "nativeFabricUIManager" in global;
|
|
@@ -25,7 +26,7 @@ const SceneView = /*#__PURE__*/React.memo(function SceneView({
|
|
|
25
26
|
value: navigation,
|
|
26
27
|
children: /*#__PURE__*/_jsxs(NavigationRouteContext.Provider, {
|
|
27
28
|
value: route,
|
|
28
|
-
children: [descriptor.options
|
|
29
|
+
children: [isScreenOverlayVisible(descriptor.options) && /*#__PURE__*/_jsx(Overlay.Screen, {}), render()]
|
|
29
30
|
})
|
|
30
31
|
});
|
|
31
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NavigationContext","NavigationRouteContext","React","Fragment","NativeScreen","NativeScreenContainer","Overlay","ScreenComposer","withStackCore","withManagedStack","jsx","_jsx","jsxs","_jsxs","isFabric","global","SceneView","memo","descriptor","route","navigation","render","Provider","value","children","options","
|
|
1
|
+
{"version":3,"names":["NavigationContext","NavigationRouteContext","React","Fragment","NativeScreen","NativeScreenContainer","Overlay","ScreenComposer","withStackCore","withManagedStack","isScreenOverlayVisible","jsx","_jsx","jsxs","_jsxs","isFabric","global","SceneView","memo","descriptor","route","navigation","render","Provider","value","children","options","Screen","StackView","TRANSITIONS_ALWAYS_ON","DISABLE_NATIVE_SCREENS","descriptors","focusedIndex","scenes","shouldShowFloatOverlay","Float","map","scene","sceneIndex","isFocused","isBelowFocused","previousDescriptor","undefined","nextDescriptor","isPreloaded","key","shouldFreeze","index","routeKey","freezeOnBlur","previous","current","next"],"sourceRoot":"../../../../src","sources":["blank-stack/components/stack-view.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ import { Overlay } from "../../shared/components/overlay";
|
|
|
9
9
|
import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
|
|
10
10
|
import { withStackCore } from "../../shared/providers/stack/core.provider";
|
|
11
11
|
import { withManagedStack } from "../../shared/providers/stack/managed.provider";
|
|
12
|
+
import { isScreenOverlayVisible } from "../../shared/utils/overlay/visibility";
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
14
|
function isFabric() {
|
|
14
15
|
return "nativeFabricUIManager" in global;
|
|
@@ -25,7 +26,7 @@ const SceneView = /*#__PURE__*/React.memo(function SceneView({
|
|
|
25
26
|
value: navigation,
|
|
26
27
|
children: /*#__PURE__*/_jsxs(NavigationRouteContext.Provider, {
|
|
27
28
|
value: route,
|
|
28
|
-
children: [descriptor.options
|
|
29
|
+
children: [isScreenOverlayVisible(descriptor.options) && /*#__PURE__*/_jsx(Overlay.Screen, {}), render()]
|
|
29
30
|
})
|
|
30
31
|
});
|
|
31
32
|
});
|