react-native-screen-transitions 3.0.0-rc.1 → 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} +11 -12
- 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/hooks/use-overlay-animation.js +2 -3
- package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js.map +1 -1
- 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/are-descriptors-equal.js.map +1 -0
- package/lib/{module/blank-stack/utils/with-stack-navigation/_utils → commonjs/blank-stack/utils/with-stack-navigation/helpers}/calculate-active-screens-limit.js.map +1 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +15 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → 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 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.js +4 -4
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -0
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +50 -56
- 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/configs/presets.js +8 -2
- package/lib/commonjs/shared/configs/presets.js.map +1 -1
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +42 -21
- 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} +11 -12
- 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/hooks/use-overlay-animation.js +2 -3
- package/lib/module/blank-stack/hooks/use-overlay-animation.js.map +1 -1
- 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/are-descriptors-equal.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js +10 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → 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 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.js +4 -4
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +1 -0
- package/lib/module/blank-stack/utils/with-stack-navigation/index.js +49 -55
- 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/configs/presets.js +8 -2
- package/lib/module/shared/configs/presets.js.map +1 -1
- package/lib/module/shared/hooks/animation/use-screen-animation.js +42 -21
- 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 +23 -105
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.d.ts.map +1 -0
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.d.ts.map +1 -0
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +1 -0
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.d.ts.map +1 -0
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.d.ts.map +1 -0
- package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.d.ts.map +1 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → 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 -0
- 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/native-stack/types.d.ts +7 -1
- package/lib/typescript/native-stack/types.d.ts.map +1 -1
- package/lib/typescript/shared/configs/index.d.ts.map +1 -1
- package/lib/typescript/shared/configs/presets.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/index.d.ts +32 -32
- package/lib/typescript/shared/index.d.ts.map +1 -1
- 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/types/core.types.d.ts +0 -4
- package/lib/typescript/shared/types/core.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} +9 -12
- 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/hooks/use-overlay-animation.tsx +11 -11
- 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 +31 -109
- package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/compose-descriptors.ts +1 -8
- package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.tsx +1 -12
- package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-stack-navigation-state.tsx +5 -5
- package/src/blank-stack/utils/with-stack-navigation/index.tsx +43 -63
- package/src/native-stack/types.ts +8 -1
- 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/configs/presets.ts +8 -2
- package/src/shared/hooks/animation/use-screen-animation.tsx +65 -31
- 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/types/core.types.ts +4 -6
- 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/_hooks/use-closing-route-keys.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_hooks/use-previous.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_hooks/use-stack-navigation-state.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_types.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/calculate-active-screens-limit.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js +0 -25
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.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/_hooks/use-closing-route-keys.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_hooks/use-previous.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_hooks/use-stack-navigation-state.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/module/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js +0 -20
- package/lib/module/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.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/_hooks/use-stack-navigation-state.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_types.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/are-descriptors-equal.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/calculate-active-screens-limit.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/compose-descriptors.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/have-same-route-keys.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/_utils/routes-are-identical.d.ts.map +0 -1
- package/src/blank-stack/components/StackView.tsx +0 -108
- /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.js +0 -0
- /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.js +0 -0
- /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.js +0 -0
- /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.js +0 -0
- /package/lib/commonjs/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.js +0 -0
- /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.js +0 -0
- /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.js +0 -0
- /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.js +0 -0
- /package/lib/module/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.js +0 -0
- /package/lib/module/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.js +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/compose-descriptors.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-closing-route-keys.d.ts +0 -0
- /package/lib/typescript/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.d.ts +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/are-descriptors-equal.ts +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/calculate-active-screens-limit.ts +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/have-same-route-keys.ts +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_utils → helpers}/routes-are-identical.ts +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_hooks → hooks}/use-previous.tsx +0 -0
- /package/src/blank-stack/utils/with-stack-navigation/{_types.ts → types.ts} +0 -0
|
@@ -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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/overlay.tsx"],"names":[],"mappings":"AAuJA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
|
|
@@ -11,4 +11,4 @@ interface ScreenProps {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const Screen: ({ routeKey, index, routesLength, isPreloaded, activeScreensLimit, children, freezeOnBlur, shouldFreeze, }: ScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=screens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/screens.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAWpC,UAAU,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAUD,eAAO,MAAM,MAAM,GAAI,2GASpB,WAAW,4CAsDb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-view.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/components/stack-view.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,eAAO,MAAM,SAAS,sFA6DrB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { createBlankStackNavigator } from "../blank-stack/navigators/createBlankStackNavigator";
|
|
1
|
+
export { createBlankStackNavigator } from "../blank-stack/navigators/create-blank-stack-navigator";
|
|
3
2
|
export type { BlankStackNavigationEventMap, BlankStackNavigationOptions, BlankStackNavigationProp, BlankStackNavigatorProps, BlankStackOptionsArgs, BlankStackOverlayProps, BlankStackScreenProps, } from "../blank-stack/types";
|
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blank-stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,YAAY,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -13,4 +13,4 @@ export declare function createBlankStackNavigator<const ParamList extends ParamL
|
|
|
13
13
|
Navigator: typeof BlankStackNavigator;
|
|
14
14
|
}, const Config extends StaticConfig<TypeBag> = StaticConfig<TypeBag>>(config?: Config): TypedNavigator<TypeBag, Config>;
|
|
15
15
|
export {};
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=create-blank-stack-navigator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-blank-stack-navigator.d.ts","sourceRoot":"","sources":["../../../../src/blank-stack/navigators/create-blank-stack-navigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAGlB,KAAK,oBAAoB,EAGzB,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,UAAU,CAAC;AAElB,iBAAS,mBAAmB,CAAC,EAC5B,EAAE,EACF,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,GAAG,IAAI,EACP,EAAE,wBAAwB,2CAuD1B;AAED,wBAAgB,yBAAyB,CACxC,KAAK,CAAC,SAAS,SAAS,aAAa,EACrC,KAAK,CAAC,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxD,KAAK,CAAC,OAAO,SAAS,oBAAoB,GAAG;IAC5C,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACvC,aAAa,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,EAAE,4BAA4B,CAAC;IACvC,cAAc,EAAE;SACd,SAAS,IAAI,MAAM,SAAS,GAAG,wBAAwB,CACvD,SAAS,EACT,SAAS,EACT,WAAW,CACX;KACD,CAAC;IACF,SAAS,EAAE,OAAO,mBAAmB,CAAC;CACtC,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,EACjE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAElD"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, StackActionHelpers, StackNavigationState, StackRouterOptions, Theme } from "@react-navigation/native";
|
|
2
2
|
import type { DerivedValue } from "react-native-reanimated";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type { OverlayInterpolationProps, ScreenInterpolationProps, ScreenStyleInterpolator, TransitionSpec } from "../shared/types/animation.types";
|
|
6
|
-
import type { GestureActivationArea, GestureDirection } from "../shared/types/gesture.types";
|
|
3
|
+
import type { ScreenTransitionConfig } from "../shared";
|
|
4
|
+
import type { OverlayInterpolationProps, ScreenInterpolationProps } from "../shared/types/animation.types";
|
|
7
5
|
export type BlankStackNavigationEventMap = {
|
|
8
6
|
/**
|
|
9
7
|
* Event which fires when a transition animation starts.
|
|
@@ -58,30 +56,29 @@ export type BlankStackScene = {
|
|
|
58
56
|
export type BlankStackNavigationConfig = {};
|
|
59
57
|
export type BlankStackOverlayProps = {
|
|
60
58
|
/**
|
|
61
|
-
*
|
|
59
|
+
* Route of the currently focused screen in the stack.
|
|
62
60
|
*/
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Title of the previous screen.
|
|
66
|
-
*/
|
|
67
|
-
title: string;
|
|
68
|
-
};
|
|
61
|
+
focusedRoute: Route<string>;
|
|
69
62
|
/**
|
|
70
|
-
*
|
|
63
|
+
* Index of the focused route in the stack.
|
|
71
64
|
*/
|
|
72
|
-
|
|
65
|
+
focusedIndex: number;
|
|
73
66
|
/**
|
|
74
|
-
*
|
|
67
|
+
* All routes currently in the stack.
|
|
75
68
|
*/
|
|
76
|
-
|
|
69
|
+
routes: Route<string>[];
|
|
77
70
|
/**
|
|
78
|
-
*
|
|
71
|
+
* Options passed to the overlay component.
|
|
79
72
|
*/
|
|
80
|
-
|
|
73
|
+
overlayOptions?: {
|
|
74
|
+
title?: string;
|
|
75
|
+
subtitle?: string;
|
|
76
|
+
[key: string]: unknown;
|
|
77
|
+
};
|
|
81
78
|
/**
|
|
82
|
-
*
|
|
79
|
+
* Navigation prop for the overlay.
|
|
83
80
|
*/
|
|
84
|
-
|
|
81
|
+
navigation: BlankStackNavigationProp<ParamListBase>;
|
|
85
82
|
/**
|
|
86
83
|
* Animation values for the overlay.
|
|
87
84
|
*/
|
|
@@ -90,32 +87,8 @@ export type BlankStackOverlayProps = {
|
|
|
90
87
|
* Animation values for the screen.
|
|
91
88
|
*/
|
|
92
89
|
screenAnimation: DerivedValue<ScreenInterpolationProps>;
|
|
93
|
-
/**
|
|
94
|
-
* Index of the active route
|
|
95
|
-
*/
|
|
96
|
-
focusedIndex: number;
|
|
97
90
|
};
|
|
98
|
-
export type BlankStackScreenTransitionConfig = {
|
|
99
|
-
/**
|
|
100
|
-
* The user-provided function to calculate styles based on animation progress.
|
|
101
|
-
*/
|
|
102
|
-
screenStyleInterpolator?: ScreenStyleInterpolator;
|
|
103
|
-
/**
|
|
104
|
-
* The Reanimated animation config for opening and closing transitions.
|
|
105
|
-
*/
|
|
106
|
-
transitionSpec?: TransitionSpec;
|
|
107
|
-
/**
|
|
108
|
-
* Whether the gesture is enabled.
|
|
109
|
-
*/
|
|
110
|
-
gestureEnabled?: boolean;
|
|
111
|
-
/**
|
|
112
|
-
* The direction of the swipe gesture used to dismiss the screen.
|
|
113
|
-
*/
|
|
114
|
-
gestureDirection?: GestureDirection | GestureDirection[];
|
|
115
|
-
/**
|
|
116
|
-
* How much the gesture's final velocity impacts the dismiss decision.
|
|
117
|
-
*/
|
|
118
|
-
gestureVelocityImpact?: number;
|
|
91
|
+
export type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
|
|
119
92
|
/**
|
|
120
93
|
* Whether to detach the previous screen from the view hierarchy to save memory.
|
|
121
94
|
* Set it to `false` if you need the previous screen to be seen through the active screen.
|
|
@@ -123,18 +96,6 @@ export type BlankStackScreenTransitionConfig = {
|
|
|
123
96
|
* Defaults to `false` for the last screen for modals, otherwise `true`.
|
|
124
97
|
*/
|
|
125
98
|
detachPreviousScreen?: boolean;
|
|
126
|
-
/**
|
|
127
|
-
* Distance threshold for gesture recognition throughout the screen.
|
|
128
|
-
*/
|
|
129
|
-
gestureResponseDistance?: number;
|
|
130
|
-
/**
|
|
131
|
-
* Whether the gesture drives the progress.
|
|
132
|
-
*/
|
|
133
|
-
gestureDrivesProgress?: boolean;
|
|
134
|
-
/**
|
|
135
|
-
* The area of the screen where the gesture is activated.
|
|
136
|
-
*/
|
|
137
|
-
gestureActivationArea?: GestureActivationArea;
|
|
138
99
|
};
|
|
139
100
|
export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
|
|
140
101
|
/**
|
|
@@ -154,56 +115,13 @@ export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
|
|
|
154
115
|
*/
|
|
155
116
|
overlayShown?: boolean;
|
|
156
117
|
/**
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
* @platform ios
|
|
160
|
-
*/
|
|
161
|
-
autoHideHomeIndicator?: boolean;
|
|
162
|
-
/**
|
|
163
|
-
* Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`.
|
|
164
|
-
*
|
|
165
|
-
* @platform ios
|
|
118
|
+
* Options passed to the overlay component.
|
|
166
119
|
*/
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
*/
|
|
173
|
-
navigationBarHidden?: boolean;
|
|
174
|
-
/**
|
|
175
|
-
* Sets the status bar animation (similar to the `StatusBar` component).
|
|
176
|
-
* On Android, setting either `fade` or `slide` will set the transition of status bar color. On iOS, this option applies to appereance animation of the status bar.
|
|
177
|
-
* Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.
|
|
178
|
-
*
|
|
179
|
-
* Defaults to `fade` on iOS and `none` on Android.
|
|
180
|
-
*
|
|
181
|
-
* Only supported on Android and iOS.
|
|
182
|
-
*
|
|
183
|
-
* @platform android, ios
|
|
184
|
-
*/
|
|
185
|
-
statusBarAnimation?: ScreenProps["statusBarAnimation"];
|
|
186
|
-
/**
|
|
187
|
-
* Whether the status bar should be hidden on this screen.
|
|
188
|
-
* Requires setting `View controller-based status bar appearance -> YES` in your Info.plist file.
|
|
189
|
-
*
|
|
190
|
-
* Only supported on Android and iOS.
|
|
191
|
-
*
|
|
192
|
-
* @platform android, ios
|
|
193
|
-
*/
|
|
194
|
-
statusBarHidden?: boolean;
|
|
195
|
-
/**
|
|
196
|
-
* Sets the status bar color (similar to the `StatusBar` component).
|
|
197
|
-
* Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.
|
|
198
|
-
* `auto` and `inverted` are supported only on iOS. On Android, they will fallback to `light`.
|
|
199
|
-
*
|
|
200
|
-
* Defaults to `auto` on iOS and `light` on Android.
|
|
201
|
-
*
|
|
202
|
-
* Only supported on Android and iOS.
|
|
203
|
-
*
|
|
204
|
-
* @platform android, ios
|
|
205
|
-
*/
|
|
206
|
-
statusBarStyle?: ScreenProps["statusBarStyle"];
|
|
120
|
+
overlayOptions?: {
|
|
121
|
+
title?: string;
|
|
122
|
+
subtitle?: string;
|
|
123
|
+
[key: string]: unknown;
|
|
124
|
+
};
|
|
207
125
|
/**
|
|
208
126
|
* Whether inactive screens should be suspended from re-rendering. Defaults to `false`.
|
|
209
127
|
* Defaults to `true` when `enableFreeze()` is run at the top of the application.
|