react-native-screen-transitions 3.0.0-rc.2 → 3.0.0-rc.3
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 +421 -371
- package/lib/commonjs/blank-stack/components/{Overlay.js → overlay.js} +7 -5
- package/lib/commonjs/blank-stack/components/overlay.js.map +1 -0
- package/lib/commonjs/blank-stack/components/{Screens.js → screens.js} +8 -10
- package/lib/commonjs/blank-stack/components/screens.js.map +1 -0
- package/lib/commonjs/blank-stack/components/stack-view.js +95 -0
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -0
- package/lib/commonjs/blank-stack/index.js +1 -8
- package/lib/commonjs/blank-stack/index.js.map +1 -1
- package/lib/commonjs/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +3 -3
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +49 -55
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_types.js → types.js} +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +38 -22
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/providers/flags.provider.js +25 -0
- package/lib/commonjs/shared/providers/flags.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/register-bounds.provider.js +71 -45
- package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds.store.js +91 -47
- package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/index.js +4 -5
- package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/utils/create-provider.js +20 -1
- package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
- package/lib/commonjs/shared/utils/reset-stores-for-screen.js +2 -0
- package/lib/commonjs/shared/utils/reset-stores-for-screen.js.map +1 -1
- package/lib/module/blank-stack/components/{Overlay.js → overlay.js} +7 -5
- package/lib/module/blank-stack/components/overlay.js.map +1 -0
- package/lib/module/blank-stack/components/{Screens.js → screens.js} +8 -10
- package/lib/module/blank-stack/components/screens.js.map +1 -0
- package/lib/module/blank-stack/components/stack-view.js +90 -0
- package/lib/module/blank-stack/components/stack-view.js.map +1 -0
- package/lib/module/blank-stack/index.js +1 -2
- package/lib/module/blank-stack/index.js.map +1 -1
- package/lib/module/blank-stack/navigators/{createBlankStackNavigator.js → create-blank-stack-navigator.js} +2 -2
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +1 -11
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js +1 -12
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +1 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/index.js +48 -54
- package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +1 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/types.js +4 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/types.js.map +1 -0
- package/lib/module/shared/hooks/animation/use-screen-animation.js +38 -22
- package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/providers/flags.provider.js +19 -0
- package/lib/module/shared/providers/flags.provider.js.map +1 -0
- package/lib/module/shared/providers/register-bounds.provider.js +71 -45
- package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/module/shared/stores/bounds.store.js +91 -47
- package/lib/module/shared/stores/bounds.store.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js +1 -1
- package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js.map +1 -1
- package/lib/module/shared/utils/bounds/index.js +4 -5
- package/lib/module/shared/utils/bounds/index.js.map +1 -1
- package/lib/module/shared/utils/create-provider.js +20 -1
- package/lib/module/shared/utils/create-provider.js.map +1 -1
- package/lib/module/shared/utils/reset-stores-for-screen.js +2 -0
- package/lib/module/shared/utils/reset-stores-for-screen.js.map +1 -1
- package/lib/typescript/blank-stack/components/{Overlay.d.ts → overlay.d.ts} +1 -1
- package/lib/typescript/blank-stack/components/overlay.d.ts.map +1 -0
- package/lib/typescript/blank-stack/components/{Screens.d.ts → screens.d.ts} +1 -1
- package/lib/typescript/blank-stack/components/{Screens.d.ts.map → screens.d.ts.map} +1 -1
- package/lib/typescript/blank-stack/components/stack-view.d.ts +3 -0
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -0
- package/lib/typescript/blank-stack/index.d.ts +1 -2
- package/lib/typescript/blank-stack/index.d.ts.map +1 -1
- package/lib/typescript/blank-stack/navigators/{createBlankStackNavigator.d.ts → create-blank-stack-navigator.d.ts} +1 -1
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -0
- package/lib/typescript/blank-stack/types.d.ts +4 -0
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts +3 -5
- package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/{_types.d.ts → types.d.ts} +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts.map +1 -0
- 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/index.d.ts +20 -20
- package/lib/typescript/shared/providers/flags.provider.d.ts +10 -0
- package/lib/typescript/shared/providers/flags.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds.store.d.ts +23 -11
- package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +2 -2
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
- package/lib/typescript/shared/utils/create-provider.d.ts +2 -2
- package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
- package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/blank-stack/components/{Overlay.tsx → overlay.tsx} +4 -3
- package/src/blank-stack/components/{Screens.tsx → screens.tsx} +7 -9
- package/src/blank-stack/components/stack-view.tsx +104 -0
- package/src/blank-stack/index.ts +1 -2
- package/src/blank-stack/navigators/{createBlankStackNavigator.tsx → create-blank-stack-navigator.tsx} +1 -1
- package/src/blank-stack/types.ts +5 -7
- package/src/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.ts +1 -8
- package/src/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.tsx +1 -12
- package/src/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.tsx +1 -1
- package/src/blank-stack/utils/with-stack-navigation/index.tsx +42 -62
- package/src/shared/__tests__/bounds.store.test.ts +398 -167
- package/src/shared/__tests__/determine-dismissal.test.ts +2 -12
- package/src/shared/__tests__/geometry.test.ts +1 -1
- package/src/shared/__tests__/gesture.velocity.test.ts +2 -10
- package/src/shared/hooks/animation/use-screen-animation.tsx +55 -29
- package/src/shared/hooks/gestures/use-build-gestures.tsx +4 -1
- package/src/shared/providers/flags.provider.tsx +21 -0
- package/src/shared/providers/register-bounds.provider.tsx +85 -54
- package/src/shared/stores/bounds.store.ts +90 -54
- package/src/shared/types/bounds.types.ts +2 -2
- package/src/shared/utils/bounds/helpers/is-bounds-equal.ts +1 -1
- package/src/shared/utils/bounds/index.ts +7 -10
- package/src/shared/utils/create-provider.tsx +35 -1
- package/src/shared/utils/reset-stores-for-screen.ts +2 -0
- package/lib/commonjs/blank-stack/components/Overlay.js.map +0 -1
- package/lib/commonjs/blank-stack/components/Screens.js.map +0 -1
- package/lib/commonjs/blank-stack/components/StackView.js +0 -93
- package/lib/commonjs/blank-stack/components/StackView.js.map +0 -1
- package/lib/commonjs/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
- package/lib/module/blank-stack/components/Overlay.js.map +0 -1
- package/lib/module/blank-stack/components/Screens.js.map +0 -1
- package/lib/module/blank-stack/components/StackView.js +0 -88
- package/lib/module/blank-stack/components/StackView.js.map +0 -1
- package/lib/module/blank-stack/navigators/createBlankStackNavigator.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_types.js +0 -4
- package/lib/module/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
- package/lib/typescript/blank-stack/components/Overlay.d.ts.map +0 -1
- package/lib/typescript/blank-stack/components/StackView.d.ts +0 -2
- package/lib/typescript/blank-stack/components/StackView.d.ts.map +0 -1
- package/lib/typescript/blank-stack/navigators/createBlankStackNavigator.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_types.d.ts.map +0 -1
- package/src/blank-stack/components/StackView.tsx +0 -108
- /package/src/blank-stack/utils/with-stack-navigation/{_types.ts → types.ts} +0 -0
|
@@ -11,23 +11,24 @@ import { prepareStyleForBounds } from "../utils/bounds/helpers/styles";
|
|
|
11
11
|
import createProvider from "../utils/create-provider";
|
|
12
12
|
import { useKeys } from "./keys.provider";
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* Returns
|
|
14
|
+
* Builds the full ancestor key chain for nested navigators.
|
|
15
|
+
* Returns an array of screen keys from immediate parent to root.
|
|
16
|
+
* [parentKey, grandparentKey, greatGrandparentKey, ...]
|
|
16
17
|
*/
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
const getAncestorKeys = current => {
|
|
19
|
+
const ancestors = [];
|
|
20
|
+
let nav = current.navigation.getParent();
|
|
21
|
+
while (nav) {
|
|
22
|
+
const state = nav.getState();
|
|
23
|
+
if (state?.routes && state.index !== undefined) {
|
|
24
|
+
const focusedRoute = state.routes[state.index];
|
|
25
|
+
if (focusedRoute?.key) {
|
|
26
|
+
ancestors.push(focusedRoute.key);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
nav = nav.getParent();
|
|
29
30
|
}
|
|
30
|
-
return
|
|
31
|
+
return ancestors;
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
/**
|
|
@@ -38,48 +39,72 @@ const useInitialLayoutHandler = params => {
|
|
|
38
39
|
const {
|
|
39
40
|
sharedBoundTag,
|
|
40
41
|
currentScreenKey,
|
|
41
|
-
|
|
42
|
+
ancestorKeys,
|
|
42
43
|
maybeMeasureAndStore
|
|
43
44
|
} = params;
|
|
44
45
|
const isAnimating = AnimationStore.getAnimation(currentScreenKey, "animating");
|
|
45
|
-
|
|
46
|
+
|
|
47
|
+
// Check if any ancestor is animating
|
|
48
|
+
const ancestorAnimations = ancestorKeys.map(key => AnimationStore.getAnimation(key, "animating"));
|
|
46
49
|
const hasMeasuredOnLayout = useSharedValue(false);
|
|
47
50
|
return useCallback(() => {
|
|
48
51
|
"worklet";
|
|
49
52
|
|
|
50
|
-
if (!sharedBoundTag || hasMeasuredOnLayout.
|
|
51
|
-
|
|
53
|
+
if (!sharedBoundTag || hasMeasuredOnLayout.get()) return;
|
|
54
|
+
|
|
55
|
+
// Check if current or any ancestor is animating
|
|
56
|
+
let isAnyAnimating = isAnimating.get();
|
|
57
|
+
for (let i = 0; i < ancestorAnimations.length; i++) {
|
|
58
|
+
if (ancestorAnimations[i].get()) {
|
|
59
|
+
isAnyAnimating = 1;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!isAnyAnimating) return;
|
|
52
64
|
maybeMeasureAndStore({
|
|
53
65
|
shouldSetSource: false,
|
|
54
66
|
shouldSetDestination: true
|
|
55
67
|
});
|
|
56
|
-
hasMeasuredOnLayout.
|
|
57
|
-
}, [sharedBoundTag, hasMeasuredOnLayout, isAnimating,
|
|
68
|
+
hasMeasuredOnLayout.set(true);
|
|
69
|
+
}, [sharedBoundTag, hasMeasuredOnLayout, isAnimating, ancestorAnimations, maybeMeasureAndStore]);
|
|
58
70
|
};
|
|
59
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Measures non-pressable elements when screen becomes blurred.
|
|
74
|
+
* Captures bounds right before transition starts.
|
|
75
|
+
*/
|
|
60
76
|
/**
|
|
61
77
|
* Measures non-pressable elements when screen becomes blurred.
|
|
62
78
|
* Captures bounds right before transition starts.
|
|
63
79
|
*/
|
|
64
80
|
const useBlurMeasurement = params => {
|
|
81
|
+
const {
|
|
82
|
+
current
|
|
83
|
+
} = useKeys();
|
|
65
84
|
const {
|
|
66
85
|
sharedBoundTag,
|
|
86
|
+
ancestorKeys,
|
|
67
87
|
maybeMeasureAndStore
|
|
68
88
|
} = params;
|
|
69
|
-
const isFocused = useRef(true);
|
|
70
89
|
const hasCapturedSource = useRef(false);
|
|
90
|
+
const ancestorClosing = [current.route.key, ...ancestorKeys].map(key => AnimationStore.getAnimation(key, "closing"));
|
|
91
|
+
const maybeMeasureOnBlur = useStableCallbackValue(() => {
|
|
92
|
+
"worklet";
|
|
93
|
+
|
|
94
|
+
// Don't measure if current / any ancestor is closing
|
|
95
|
+
const isOneClosing = ancestorClosing.some(closing => closing.get());
|
|
96
|
+
if (isOneClosing) return;
|
|
97
|
+
maybeMeasureAndStore({
|
|
98
|
+
shouldSetSource: true
|
|
99
|
+
});
|
|
100
|
+
});
|
|
71
101
|
useFocusEffect(useCallback(() => {
|
|
72
|
-
isFocused.current = true;
|
|
73
102
|
hasCapturedSource.current = false;
|
|
74
103
|
return () => {
|
|
75
|
-
if (!sharedBoundTag) return;
|
|
76
|
-
|
|
77
|
-
isFocused.current = false;
|
|
78
|
-
runOnUI(maybeMeasureAndStore)({
|
|
79
|
-
shouldSetSource: true
|
|
80
|
-
});
|
|
104
|
+
if (!sharedBoundTag || hasCapturedSource.current) return;
|
|
105
|
+
runOnUI(maybeMeasureOnBlur)();
|
|
81
106
|
};
|
|
82
|
-
}, [sharedBoundTag,
|
|
107
|
+
}, [sharedBoundTag, maybeMeasureOnBlur]));
|
|
83
108
|
return {
|
|
84
109
|
markSourceCaptured: () => {
|
|
85
110
|
hasCapturedSource.current = true;
|
|
@@ -95,7 +120,7 @@ const useParentSyncReaction = params => {
|
|
|
95
120
|
parentContext,
|
|
96
121
|
maybeMeasureAndStore
|
|
97
122
|
} = params;
|
|
98
|
-
useAnimatedReaction(() => parentContext?.updateSignal.
|
|
123
|
+
useAnimatedReaction(() => parentContext?.updateSignal.get(), value => {
|
|
99
124
|
"worklet";
|
|
100
125
|
|
|
101
126
|
if (value === 0 || value === undefined) return;
|
|
@@ -118,7 +143,7 @@ const {
|
|
|
118
143
|
current
|
|
119
144
|
} = useKeys();
|
|
120
145
|
const currentScreenKey = current.route.key;
|
|
121
|
-
const
|
|
146
|
+
const ancestorKeys = useMemo(() => getAncestorKeys(current), [current]);
|
|
122
147
|
|
|
123
148
|
// Context & signals
|
|
124
149
|
const parentContext = useRegisterBoundsContext();
|
|
@@ -130,7 +155,7 @@ const {
|
|
|
130
155
|
"worklet";
|
|
131
156
|
|
|
132
157
|
const isRoot = !parentContext;
|
|
133
|
-
if (isRoot) updateSignal.
|
|
158
|
+
if (isRoot) updateSignal.set(updateSignal.get() + 1);
|
|
134
159
|
});
|
|
135
160
|
const maybeMeasureAndStore = useStableCallbackValue(({
|
|
136
161
|
onPress,
|
|
@@ -143,30 +168,30 @@ const {
|
|
|
143
168
|
const measured = measure(animatedRef);
|
|
144
169
|
if (!measured) return;
|
|
145
170
|
emitUpdate();
|
|
146
|
-
|
|
147
|
-
// Always register occurrence
|
|
148
|
-
BoundStore.registerOccurrence(sharedBoundTag, currentScreenKey, measured, preparedStyles);
|
|
149
|
-
|
|
150
|
-
// Set as source (on press or blur)
|
|
171
|
+
BoundStore.registerSnapshot(sharedBoundTag, currentScreenKey, measured, preparedStyles, ancestorKeys);
|
|
151
172
|
if (shouldSetSource) {
|
|
152
|
-
if (isAnimating.
|
|
153
|
-
|
|
154
|
-
|
|
173
|
+
if (isAnimating.get()) {
|
|
174
|
+
// If animation is already in progress,
|
|
175
|
+
// lets use the existing measuremenets.
|
|
176
|
+
const existing = BoundStore.getSnapshot(sharedBoundTag, currentScreenKey);
|
|
177
|
+
if (existing) {
|
|
178
|
+
BoundStore.setLinkSource(sharedBoundTag, currentScreenKey, existing.bounds, preparedStyles, ancestorKeys);
|
|
179
|
+
}
|
|
155
180
|
return;
|
|
156
181
|
}
|
|
157
|
-
BoundStore.setLinkSource(sharedBoundTag, currentScreenKey, measured, preparedStyles,
|
|
182
|
+
BoundStore.setLinkSource(sharedBoundTag, currentScreenKey, measured, preparedStyles, ancestorKeys);
|
|
158
183
|
}
|
|
159
184
|
|
|
160
185
|
// Set as destination (on mount during animation)
|
|
161
186
|
if (shouldSetDestination) {
|
|
162
|
-
BoundStore.setLinkDestination(sharedBoundTag, currentScreenKey, measured, preparedStyles,
|
|
187
|
+
BoundStore.setLinkDestination(sharedBoundTag, currentScreenKey, measured, preparedStyles, ancestorKeys);
|
|
163
188
|
}
|
|
164
189
|
if (onPress) runOnJS(onPress)();
|
|
165
190
|
});
|
|
166
191
|
const handleInitialLayout = useInitialLayoutHandler({
|
|
167
192
|
sharedBoundTag,
|
|
168
193
|
currentScreenKey,
|
|
169
|
-
|
|
194
|
+
ancestorKeys,
|
|
170
195
|
maybeMeasureAndStore
|
|
171
196
|
});
|
|
172
197
|
|
|
@@ -175,7 +200,8 @@ const {
|
|
|
175
200
|
markSourceCaptured
|
|
176
201
|
} = useBlurMeasurement({
|
|
177
202
|
sharedBoundTag,
|
|
178
|
-
maybeMeasureAndStore
|
|
203
|
+
maybeMeasureAndStore,
|
|
204
|
+
ancestorKeys
|
|
179
205
|
});
|
|
180
206
|
useParentSyncReaction({
|
|
181
207
|
parentContext,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFocusEffect","useCallback","useMemo","useRef","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useStableCallback","useStableCallbackValue","AnimationStore","BoundStore","prepareStyleForBounds","createProvider","useKeys","
|
|
1
|
+
{"version":3,"names":["useFocusEffect","useCallback","useMemo","useRef","measure","runOnJS","runOnUI","useAnimatedReaction","useSharedValue","useStableCallback","useStableCallbackValue","AnimationStore","BoundStore","prepareStyleForBounds","createProvider","useKeys","getAncestorKeys","current","ancestors","nav","navigation","getParent","state","getState","routes","index","undefined","focusedRoute","key","push","useInitialLayoutHandler","params","sharedBoundTag","currentScreenKey","ancestorKeys","maybeMeasureAndStore","isAnimating","getAnimation","ancestorAnimations","map","hasMeasuredOnLayout","get","isAnyAnimating","i","length","shouldSetSource","shouldSetDestination","set","useBlurMeasurement","hasCapturedSource","ancestorClosing","route","maybeMeasureOnBlur","isOneClosing","some","closing","markSourceCaptured","useParentSyncReaction","parentContext","updateSignal","value","RegisterBoundsProvider","useRegisterBoundsContext","guarded","style","onPress","animatedRef","children","ownSignal","preparedStyles","emitUpdate","isRoot","measured","registerSnapshot","existing","getSnapshot","setLinkSource","bounds","setLinkDestination","handleInitialLayout","captureActiveOnPress"],"sourceRoot":"../../../../src","sources":["shared/providers/register-bounds.provider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { makeMutable } from "react-native-reanimated";
|
|
4
|
-
/**
|
|
5
|
-
* Note on cleanup: We intentionally skip automatic cleanup of old links.
|
|
6
|
-
* The linkStack grows by one entry per navigation, but `getActiveLink`
|
|
7
|
-
* finds the correct link via screenKey matching regardless of stack size.
|
|
8
|
-
* This is unlikely to cause performance issues in typical apps, but if
|
|
9
|
-
* memory becomes a concern in apps with heavy navigation (hundreds of
|
|
10
|
-
* transitions), we should consider implementing cleanup on screen unmount using
|
|
11
|
-
* screenKey filtering.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
4
|
const registry = makeMutable({});
|
|
15
|
-
function
|
|
5
|
+
function registerSnapshot(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
16
6
|
"worklet";
|
|
17
7
|
|
|
18
8
|
registry.modify(state => {
|
|
@@ -20,33 +10,32 @@ function registerOccurrence(tag, screenKey, bounds, styles = {}) {
|
|
|
20
10
|
|
|
21
11
|
if (!state[tag]) {
|
|
22
12
|
state[tag] = {
|
|
23
|
-
|
|
13
|
+
snapshots: {},
|
|
24
14
|
linkStack: []
|
|
25
15
|
};
|
|
26
16
|
}
|
|
27
|
-
state[tag].
|
|
17
|
+
state[tag].snapshots[screenKey] = {
|
|
28
18
|
bounds,
|
|
29
|
-
styles
|
|
19
|
+
styles,
|
|
20
|
+
ancestorKeys
|
|
30
21
|
};
|
|
31
22
|
return state;
|
|
32
23
|
});
|
|
33
24
|
}
|
|
34
|
-
function setLinkSource(tag, screenKey, bounds, styles = {},
|
|
25
|
+
function setLinkSource(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
35
26
|
"worklet";
|
|
36
27
|
|
|
37
28
|
registry.modify(state => {
|
|
38
29
|
"worklet";
|
|
39
30
|
|
|
40
31
|
if (!state[tag]) state[tag] = {
|
|
41
|
-
|
|
32
|
+
snapshots: {},
|
|
42
33
|
linkStack: []
|
|
43
34
|
};
|
|
44
|
-
|
|
45
|
-
// Push new link onto stack
|
|
46
35
|
state[tag].linkStack.push({
|
|
47
36
|
source: {
|
|
48
37
|
screenKey,
|
|
49
|
-
|
|
38
|
+
ancestorKeys,
|
|
50
39
|
bounds,
|
|
51
40
|
styles
|
|
52
41
|
},
|
|
@@ -55,7 +44,7 @@ function setLinkSource(tag, screenKey, bounds, styles = {}, parentScreenKey) {
|
|
|
55
44
|
return state;
|
|
56
45
|
});
|
|
57
46
|
}
|
|
58
|
-
function setLinkDestination(tag, screenKey, bounds, styles = {},
|
|
47
|
+
function setLinkDestination(tag, screenKey, bounds, styles = {}, ancestorKeys) {
|
|
59
48
|
"worklet";
|
|
60
49
|
|
|
61
50
|
registry.modify(state => {
|
|
@@ -69,7 +58,7 @@ function setLinkDestination(tag, screenKey, bounds, styles = {}, parentScreenKey
|
|
|
69
58
|
if (stack[i].destination === null) {
|
|
70
59
|
stack[i].destination = {
|
|
71
60
|
screenKey,
|
|
72
|
-
|
|
61
|
+
ancestorKeys,
|
|
73
62
|
bounds,
|
|
74
63
|
styles
|
|
75
64
|
};
|
|
@@ -79,20 +68,57 @@ function setLinkDestination(tag, screenKey, bounds, styles = {}, parentScreenKey
|
|
|
79
68
|
return state;
|
|
80
69
|
});
|
|
81
70
|
}
|
|
82
|
-
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Helper to check if a screen identifier matches a given key.
|
|
74
|
+
* Checks both direct screenKey match and ancestor chain.
|
|
75
|
+
*/
|
|
76
|
+
function matchesScreenKey(identifier, key) {
|
|
83
77
|
"worklet";
|
|
84
78
|
|
|
85
|
-
|
|
79
|
+
if (!identifier) return false;
|
|
80
|
+
|
|
81
|
+
// Direct match
|
|
82
|
+
if (identifier.screenKey === key) return true;
|
|
83
|
+
|
|
84
|
+
// Check ancestor chain
|
|
85
|
+
return identifier.ancestorKeys?.includes(key) ?? false;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Get snapshot by tag and optional key.
|
|
90
|
+
* If key is provided, supports ancestor matching - if the key matches any ancestor
|
|
91
|
+
* of a stored snapshot, that snapshot will be returned.
|
|
92
|
+
* If key is omitted, returns the most recently registered snapshot.
|
|
93
|
+
*/
|
|
94
|
+
function getSnapshot(tag, key) {
|
|
90
95
|
"worklet";
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
const tagState = registry.value[tag];
|
|
98
|
+
if (!tagState) return null;
|
|
99
|
+
|
|
100
|
+
// Direct match in occurrences
|
|
101
|
+
if (tagState.snapshots[key]) {
|
|
102
|
+
const snap = tagState.snapshots[key];
|
|
103
|
+
return {
|
|
104
|
+
bounds: snap.bounds,
|
|
105
|
+
styles: snap.styles
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Ancestor match
|
|
110
|
+
for (const screenKey in tagState.snapshots) {
|
|
111
|
+
const snap = tagState.snapshots[screenKey];
|
|
112
|
+
if (snap.ancestorKeys?.includes(key)) {
|
|
113
|
+
return {
|
|
114
|
+
bounds: snap.bounds,
|
|
115
|
+
styles: snap.styles
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
94
120
|
}
|
|
95
|
-
function getActiveLink(tag, screenKey
|
|
121
|
+
function getActiveLink(tag, screenKey) {
|
|
96
122
|
"worklet";
|
|
97
123
|
|
|
98
124
|
const stack = registry.value[tag]?.linkStack;
|
|
@@ -102,36 +128,54 @@ function getActiveLink(tag, screenKey, isClosing) {
|
|
|
102
128
|
|
|
103
129
|
// If screenKey provided, find link involving that screen
|
|
104
130
|
if (screenKey) {
|
|
105
|
-
// When closing (backward nav), we want the link where this screen is the DESTINATION
|
|
106
|
-
// When opening (forward nav), we want the link where this screen is the DESTINATION too
|
|
107
|
-
// The source is always the "from" screen, destination is the "to" screen
|
|
108
|
-
|
|
109
|
-
if (isClosing) {
|
|
110
|
-
// Backward: find link where I am the destination (I'm going back to source)
|
|
111
|
-
for (let i = stack.length - 1; i >= 0; i--) {
|
|
112
|
-
const link = stack[i];
|
|
113
|
-
if (matchesScreenKey(link.destination, screenKey)) {
|
|
114
|
-
return link;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Forward or fallback: find any link involving this screen
|
|
120
131
|
for (let i = stack.length - 1; i >= 0; i--) {
|
|
121
132
|
const link = stack[i];
|
|
122
|
-
if (
|
|
133
|
+
if (!link.destination) continue;
|
|
134
|
+
const isSource = matchesScreenKey(link.source, screenKey);
|
|
135
|
+
const isDestination = matchesScreenKey(link.destination, screenKey);
|
|
136
|
+
if (isSource || isDestination) {
|
|
137
|
+
// If I match the source, I'm closing (going back to where I came from)
|
|
123
138
|
return link;
|
|
124
139
|
}
|
|
125
140
|
}
|
|
126
141
|
return null;
|
|
127
142
|
}
|
|
128
|
-
|
|
143
|
+
const lastLink = stack[stack.length - 1];
|
|
144
|
+
return lastLink ? lastLink : null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Clear all snapshots and links for a screen across all tags.
|
|
149
|
+
* Called when a screen unmounts.
|
|
150
|
+
*/
|
|
151
|
+
function clear(screenKey) {
|
|
152
|
+
"worklet";
|
|
153
|
+
|
|
154
|
+
registry.modify(state => {
|
|
155
|
+
"worklet";
|
|
156
|
+
|
|
157
|
+
for (const tag in state) {
|
|
158
|
+
// Remove snapshot
|
|
159
|
+
if (state[tag].snapshots[screenKey]) {
|
|
160
|
+
delete state[tag].snapshots[screenKey];
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Remove links involving this screen
|
|
164
|
+
state[tag].linkStack = state[tag].linkStack.filter(link => {
|
|
165
|
+
const sourceMatches = matchesScreenKey(link.source, screenKey);
|
|
166
|
+
const destMatches = matchesScreenKey(link.destination, screenKey);
|
|
167
|
+
return !sourceMatches && !destMatches;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return state;
|
|
171
|
+
});
|
|
129
172
|
}
|
|
130
173
|
export const BoundStore = {
|
|
131
|
-
|
|
174
|
+
registerSnapshot,
|
|
132
175
|
setLinkSource,
|
|
133
176
|
setLinkDestination,
|
|
134
177
|
getActiveLink,
|
|
135
|
-
|
|
178
|
+
getSnapshot,
|
|
179
|
+
clear
|
|
136
180
|
};
|
|
137
181
|
//# sourceMappingURL=bounds.store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeMutable","registry","
|
|
1
|
+
{"version":3,"names":["makeMutable","registry","registerSnapshot","tag","screenKey","bounds","styles","ancestorKeys","modify","state","snapshots","linkStack","setLinkSource","push","source","destination","setLinkDestination","stack","length","i","matchesScreenKey","identifier","key","includes","getSnapshot","tagState","value","snap","getActiveLink","link","isSource","isDestination","lastLink","clear","filter","sourceMatches","destMatches","BoundStore"],"sourceRoot":"../../../../src","sources":["shared/stores/bounds.store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ export const isBoundsEqual = ({
|
|
|
8
8
|
}) => {
|
|
9
9
|
"worklet";
|
|
10
10
|
|
|
11
|
-
const existing = BoundStore.
|
|
11
|
+
const existing = BoundStore.getSnapshot(sharedBoundTag, key)?.bounds;
|
|
12
12
|
return !!existing && existing.width === measured.width && existing.height === measured.height && existing.pageX === measured.pageX && existing.pageY === measured.pageY && existing.x === measured.x && existing.y === measured.y;
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=is-bounds-equal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoundStore","isBoundsEqual","measured","key","sharedBoundTag","existing","
|
|
1
|
+
{"version":3,"names":["BoundStore","isBoundsEqual","measured","key","sharedBoundTag","existing","getSnapshot","bounds","width","height","pageX","pageY","x","y"],"sourceRoot":"../../../../../../src","sources":["shared/utils/bounds/helpers/is-bounds-equal.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,8BAA8B;AAEzD,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,GAAG;EACHC;AAKD,CAAC,KAAK;EACL,SAAS;;EACT,MAAMC,QAAQ,GAAGL,UAAU,CAACM,WAAW,CAACF,cAAc,EAAED,GAAG,CAAC,EAAEI,MAAM;EACpE,OACC,CAAC,CAACF,QAAQ,IACVA,QAAQ,CAACG,KAAK,KAAKN,QAAQ,CAACM,KAAK,IACjCH,QAAQ,CAACI,MAAM,KAAKP,QAAQ,CAACO,MAAM,IACnCJ,QAAQ,CAACK,KAAK,KAAKR,QAAQ,CAACQ,KAAK,IACjCL,QAAQ,CAACM,KAAK,KAAKT,QAAQ,CAACS,KAAK,IACjCN,QAAQ,CAACO,CAAC,KAAKV,QAAQ,CAACU,CAAC,IACzBP,QAAQ,CAACQ,CAAC,KAAKX,QAAQ,CAACW,CAAC;AAE3B,CAAC","ignoreList":[]}
|
|
@@ -9,11 +9,10 @@ const resolveBounds = props => {
|
|
|
9
9
|
|
|
10
10
|
const entering = !props.next;
|
|
11
11
|
const fullscreen = FULLSCREEN_DIMENSIONS(props.dimensions);
|
|
12
|
-
const isClosing = props.current?.closing === 1;
|
|
13
12
|
const isFullscreenTarget = props.computeOptions.target === "fullscreen";
|
|
14
13
|
|
|
15
14
|
// Try exact match first (strict matching for nested stacks)
|
|
16
|
-
let link = BoundStore.getActiveLink(props.id, props.current?.route.key
|
|
15
|
+
let link = BoundStore.getActiveLink(props.id, props.current?.route.key);
|
|
17
16
|
|
|
18
17
|
// For fullscreen target, fall back to most recent link for this tag
|
|
19
18
|
// (destination screen might not have a matching element)
|
|
@@ -145,13 +144,13 @@ export const createBounds = props => {
|
|
|
145
144
|
dimensions: props.layouts.screen
|
|
146
145
|
}, params);
|
|
147
146
|
};
|
|
148
|
-
const
|
|
147
|
+
const getSnapshot = (tag, key) => {
|
|
149
148
|
"worklet";
|
|
150
149
|
|
|
151
|
-
return BoundStore.
|
|
150
|
+
return BoundStore.getSnapshot(tag, key);
|
|
152
151
|
};
|
|
153
152
|
return Object.assign(boundsFunction, {
|
|
154
|
-
|
|
153
|
+
getSnapshot
|
|
155
154
|
});
|
|
156
155
|
};
|
|
157
156
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","BoundStore","computeContentTransformGeometry","computeRelativeGeometry","composeContentStyle","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","resolveBounds","props","entering","next","fullscreen","dimensions","
|
|
1
|
+
{"version":3,"names":["EMPTY_BOUND_HELPER_RESULT","EMPTY_BOUND_HELPER_RESULT_RAW","ENTER_RANGE","EXIT_RANGE","FULLSCREEN_DIMENSIONS","BoundStore","computeContentTransformGeometry","computeRelativeGeometry","composeContentStyle","composeSizeAbsolute","composeSizeRelative","composeTransformAbsolute","composeTransformRelative","resolveBounds","props","entering","next","fullscreen","dimensions","isFullscreenTarget","computeOptions","target","link","getActiveLink","id","current","route","key","source","start","end","destination","bounds","customTarget","computeBoundStyles","previous","progress","raw","ranges","method","geometry","anchor","scaleMode","common","isSize","isAbs","space","createBounds","boundsFunction","params","layouts","screen","getSnapshot","tag","Object","assign"],"sourceRoot":"../../../../../src","sources":["shared/utils/bounds/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,10 +36,29 @@ export default function createProvider(name, options) {
|
|
|
36
36
|
}
|
|
37
37
|
return context;
|
|
38
38
|
};
|
|
39
|
+
const withProvider = Component => {
|
|
40
|
+
return function WithProviderWrapper(props) {
|
|
41
|
+
const {
|
|
42
|
+
enabled = true,
|
|
43
|
+
value
|
|
44
|
+
} = factory(props);
|
|
45
|
+
if (!value) {
|
|
46
|
+
throw new Error(`${name}Context value must be provided. You likely forgot to return it from the factory function.`);
|
|
47
|
+
}
|
|
48
|
+
const memoValue = useMemo(() => enabled ? value : null, [enabled, value]);
|
|
49
|
+
return /*#__PURE__*/_jsx(Context.Provider, {
|
|
50
|
+
value: memoValue,
|
|
51
|
+
children: /*#__PURE__*/_jsx(Component, {
|
|
52
|
+
...value
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
};
|
|
39
57
|
return {
|
|
40
58
|
[`${name}Context`]: Context,
|
|
41
59
|
[`${name}Provider`]: Provider,
|
|
42
|
-
[`use${name}Context`]: useEnhancedContext
|
|
60
|
+
[`use${name}Context`]: useEnhancedContext,
|
|
61
|
+
[`with${name}Provider`]: withProvider
|
|
43
62
|
};
|
|
44
63
|
};
|
|
45
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","createProvider","name","options","factory","guarded","Context","displayName","Provider","props","children","enabled","value","Error","memoValue","useEnhancedContext","context"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","createProvider","name","options","factory","guarded","Context","displayName","Provider","props","children","enabled","value","Error","memoValue","useEnhancedContext","context","withProvider","Component","WithProviderWrapper"],"sourceRoot":"../../../../src","sources":["shared/utils/create-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAECA,aAAa,EAEbC,UAAU,EACVC,OAAO,QACD,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEf,eAAe,SAASC,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAIC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAGV,aAAa,CAAsB,IAAI,CAAC;IACxDU,OAAO,CAACC,WAAW,GAAGL,IAAI;IAE1B,MAAMM,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAID,KAAK,CAA8BC,QAAQ;QACvDC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;MACF;MAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;MAED,oBAAOZ,IAAA,CAACM,OAAO,CAACE,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMK,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAGnB,UAAU,CAACS,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIW,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIH,KAAK,CACd,GAAGX,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOc,OAAO;IACf,CAAC;IAED,MAAMC,YAAY,GAAIC,SAAsC,IAAK;MAChE,OAAO,SAASC,mBAAmBA,CAACV,KAAoB,EAAE;QACzD,MAAM;UAAEE,OAAO,GAAG,IAAI;UAAEC;QAAM,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;QAEhD,IAAI,CAACG,KAAK,EAAE;UACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;QACF;QAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;QAED,oBACCZ,IAAA,CAACM,OAAO,CAACE,QAAQ;UAACI,KAAK,EAAEE,SAAU;UAAAJ,QAAA,eAClCV,IAAA,CAACkB,SAAS;YAAA,GAAKN;UAAK,CAAG;QAAC,CACP,CAAC;MAErB,CAAC;IACF,CAAC;IAED,OAAO;MACN,CAAC,GAAGV,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGM,QAAQ;MAC7B,CAAC,MAAMN,IAAI,SAAS,GAAGa,kBAAkB;MACzC,CAAC,OAAOb,IAAI,UAAU,GAAGe;IAC1B,CAAC;EAaF,CAAC;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { AnimationStore } from "../stores/animation.store";
|
|
4
|
+
import { BoundStore } from "../stores/bounds.store";
|
|
4
5
|
import { GestureStore } from "../stores/gesture.store";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -9,5 +10,6 @@ import { GestureStore } from "../stores/gesture.store";
|
|
|
9
10
|
export const resetStoresForScreen = current => {
|
|
10
11
|
AnimationStore.clear(current.route.key);
|
|
11
12
|
GestureStore.clear(current.route.key);
|
|
13
|
+
BoundStore.clear(current.route.key);
|
|
12
14
|
};
|
|
13
15
|
//# sourceMappingURL=reset-stores-for-screen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AnimationStore","GestureStore","resetStoresForScreen","current","clear","route","key"],"sourceRoot":"../../../../src","sources":["shared/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,YAAY,QAAQ,yBAAyB;;AAEtD;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAA6B,IAAK;
|
|
1
|
+
{"version":3,"names":["AnimationStore","BoundStore","GestureStore","resetStoresForScreen","current","clear","route","key"],"sourceRoot":"../../../../src","sources":["shared/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,YAAY,QAAQ,yBAAyB;;AAEtD;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAA6B,IAAK;EACtEJ,cAAc,CAACK,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACvCL,YAAY,CAACG,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACrCN,UAAU,CAACI,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;AACpC,CAAC","ignoreList":[]}
|