react-native-screen-transitions 4.0.0-alpha.4 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +17 -9
- package/lib/commonjs/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +22 -24
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -36
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
- package/lib/commonjs/components/boundary/utils/destination-signals.js +7 -1
- package/lib/commonjs/components/boundary/utils/destination-signals.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js +40 -0
- package/lib/commonjs/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
- package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +15 -14
- package/lib/commonjs/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -1
- package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js +22 -27
- package/lib/commonjs/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/commonjs/stores/bounds/internals/entries.js +13 -3
- package/lib/commonjs/stores/bounds/internals/entries.js.map +1 -1
- package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +18 -10
- package/lib/module/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
- package/lib/module/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +22 -24
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -36
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +2 -2
- package/lib/module/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
- package/lib/module/components/boundary/utils/destination-signals.js +7 -1
- package/lib/module/components/boundary/utils/destination-signals.js.map +1 -1
- package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js +35 -0
- package/lib/module/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
- package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +15 -14
- package/lib/module/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -1
- package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js +22 -27
- package/lib/module/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/module/stores/bounds/internals/entries.js +13 -3
- package/lib/module/stores/bounds/internals/entries.js.map +1 -1
- package/lib/typescript/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +1 -5
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +0 -2
- package/lib/typescript/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
- package/lib/typescript/components/boundary/utils/destination-signals.d.ts +1 -1
- package/lib/typescript/components/boundary/utils/destination-signals.d.ts.map +1 -1
- package/lib/typescript/navigators/react-navigation/index.d.ts +1 -1
- package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts +9 -0
- package/lib/typescript/providers/screen/styles/helpers/create-interpolator-scope.d.ts.map +1 -0
- package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +1 -3
- package/lib/typescript/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -1
- package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +4 -4
- package/lib/typescript/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
- package/lib/typescript/stores/bounds/internals/entries.d.ts +1 -1
- package/lib/typescript/stores/bounds/internals/entries.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +34 -13
- package/src/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +4 -20
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +27 -37
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +10 -57
- package/src/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +1 -8
- package/src/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +0 -3
- package/src/components/boundary/utils/destination-signals.ts +6 -2
- package/src/providers/screen/styles/helpers/create-interpolator-scope.ts +45 -0
- package/src/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +16 -16
- package/src/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +28 -35
- package/src/stores/bounds/internals/entries.ts +12 -1
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -18
- package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -21
- package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -13
- package/lib/module/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -16
- package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +0 -3
- package/lib/typescript/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +0 -1
- package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts +0 -2
- package/lib/typescript/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +0 -1
- package/src/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts +0 -16
- package/src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +0 -15
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ScreenInterpolationProps,
|
|
3
|
+
ScreenTransitionAccessor,
|
|
4
|
+
} from "../../../../types/animation.types";
|
|
5
|
+
import { createBoundsAccessor } from "../../../../utils/bounds";
|
|
6
|
+
import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
|
|
7
|
+
import type { SelectedInterpolatorFrame } from "./select-interpolator-frame";
|
|
8
|
+
|
|
9
|
+
export const createInterpolatorScope = ({
|
|
10
|
+
frame,
|
|
11
|
+
selectedFrame,
|
|
12
|
+
transition,
|
|
13
|
+
}: {
|
|
14
|
+
frame: ScreenInterpolatorFrame;
|
|
15
|
+
selectedFrame: SelectedInterpolatorFrame;
|
|
16
|
+
transition: ScreenTransitionAccessor;
|
|
17
|
+
}): ScreenInterpolationProps => {
|
|
18
|
+
"worklet";
|
|
19
|
+
|
|
20
|
+
const selectedProps = {
|
|
21
|
+
...frame,
|
|
22
|
+
...selectedFrame,
|
|
23
|
+
};
|
|
24
|
+
let scope: ScreenInterpolationProps;
|
|
25
|
+
const scopedTransition: ScreenTransitionAccessor = (target) => {
|
|
26
|
+
"worklet";
|
|
27
|
+
|
|
28
|
+
if ((target?.depth ?? 0) === 0) {
|
|
29
|
+
return scope;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return transition(target);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
scope = {
|
|
36
|
+
...selectedProps,
|
|
37
|
+
bounds: createBoundsAccessor(() => {
|
|
38
|
+
"worklet";
|
|
39
|
+
return selectedProps;
|
|
40
|
+
}),
|
|
41
|
+
transition: scopedTransition,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return scope;
|
|
45
|
+
};
|
|
@@ -81,18 +81,18 @@ const mergeSlots = (
|
|
|
81
81
|
return merged;
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
const composeCurrentAndNextStyles = (
|
|
85
|
+
current: NormalizedTransitionInterpolatedStyle,
|
|
86
|
+
next: NormalizedTransitionInterpolatedStyle,
|
|
87
87
|
) => {
|
|
88
88
|
"worklet";
|
|
89
|
-
const composed: NormalizedTransitionInterpolatedStyle = { ...
|
|
89
|
+
const composed: NormalizedTransitionInterpolatedStyle = { ...current };
|
|
90
90
|
|
|
91
|
-
for (const slotId in
|
|
92
|
-
const
|
|
91
|
+
for (const slotId in next) {
|
|
92
|
+
const nextSlot = next[slotId];
|
|
93
93
|
|
|
94
|
-
if (
|
|
95
|
-
composed[slotId] = mergeSlots(
|
|
94
|
+
if (nextSlot) {
|
|
95
|
+
composed[slotId] = mergeSlots(current[slotId], nextSlot);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
@@ -103,36 +103,36 @@ export const resolveInterpolatorStyleHandoff = ({
|
|
|
103
103
|
currentOwnsInterpolator,
|
|
104
104
|
currentStylesMap,
|
|
105
105
|
nextStylesMap,
|
|
106
|
-
frozenCurrentStylesMap,
|
|
107
106
|
}: {
|
|
108
107
|
currentOwnsInterpolator: boolean;
|
|
109
108
|
currentStylesMap: NormalizedTransitionInterpolatedStyle | undefined;
|
|
110
109
|
nextStylesMap: NormalizedTransitionInterpolatedStyle | undefined;
|
|
111
|
-
frozenCurrentStylesMap: NormalizedTransitionInterpolatedStyle;
|
|
112
110
|
}): {
|
|
113
111
|
localStylesMaps: LocalStyleLayers;
|
|
114
|
-
nextFrozenCurrentStylesMap: NormalizedTransitionInterpolatedStyle;
|
|
115
112
|
} => {
|
|
116
113
|
"worklet";
|
|
117
114
|
|
|
118
115
|
if (currentOwnsInterpolator) {
|
|
119
116
|
return {
|
|
120
117
|
localStylesMaps: currentStylesMap ? [currentStylesMap] : [],
|
|
121
|
-
nextFrozenCurrentStylesMap: currentStylesMap ?? frozenCurrentStylesMap,
|
|
122
118
|
};
|
|
123
119
|
}
|
|
124
120
|
|
|
125
121
|
if (!nextStylesMap) {
|
|
126
122
|
return {
|
|
127
|
-
localStylesMaps:
|
|
128
|
-
|
|
123
|
+
localStylesMaps: currentStylesMap ? [currentStylesMap] : [],
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (!currentStylesMap) {
|
|
128
|
+
return {
|
|
129
|
+
localStylesMaps: [nextStylesMap],
|
|
129
130
|
};
|
|
130
131
|
}
|
|
131
132
|
|
|
132
133
|
return {
|
|
133
134
|
localStylesMaps: [
|
|
134
|
-
|
|
135
|
+
composeCurrentAndNextStyles(currentStylesMap, nextStylesMap),
|
|
135
136
|
],
|
|
136
|
-
nextFrozenCurrentStylesMap: frozenCurrentStylesMap,
|
|
137
137
|
};
|
|
138
138
|
};
|
|
@@ -18,7 +18,6 @@ import type {
|
|
|
18
18
|
} from "../../../../types/animation.types";
|
|
19
19
|
import { logger } from "../../../../utils/logger";
|
|
20
20
|
import { useScreenAnimationStore } from "../../animation";
|
|
21
|
-
import { useBuildBoundsAccessor } from "../../animation/helpers/accessors/use-build-bounds-accessor";
|
|
22
21
|
import { useBuildTransitionAccessor } from "../../animation/helpers/accessors/use-build-transition-accessor";
|
|
23
22
|
import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
|
|
24
23
|
import { readScreenAnimationRevisions } from "../../animation/helpers/read-screen-animation-revisions";
|
|
@@ -29,6 +28,7 @@ import {
|
|
|
29
28
|
useScreenOptionsStore,
|
|
30
29
|
} from "../../options";
|
|
31
30
|
import { collectInterpolatorSharedValues } from "../helpers/collect-interpolator-shared-values";
|
|
31
|
+
import { createInterpolatorScope } from "../helpers/create-interpolator-scope";
|
|
32
32
|
import { normalizeSlots } from "../helpers/normalize-slots";
|
|
33
33
|
import { resolveInterpolatorStyleHandoff } from "../helpers/resolve-interpolator-style-handoff";
|
|
34
34
|
import type { LocalStyleLayers } from "../helpers/resolve-slot-styles";
|
|
@@ -54,7 +54,6 @@ type RunInterpolatorParams = {
|
|
|
54
54
|
interpolator: ScreenStyleInterpolator | undefined;
|
|
55
55
|
props: ScreenInterpolatorFrame;
|
|
56
56
|
selectedFrame: SelectedInterpolatorFrame;
|
|
57
|
-
bounds: Parameters<ScreenStyleInterpolator>[0]["bounds"];
|
|
58
57
|
transition: Parameters<ScreenStyleInterpolator>[0]["transition"];
|
|
59
58
|
};
|
|
60
59
|
|
|
@@ -76,7 +75,6 @@ const runInterpolator = ({
|
|
|
76
75
|
interpolator,
|
|
77
76
|
props,
|
|
78
77
|
selectedFrame,
|
|
79
|
-
bounds,
|
|
80
78
|
transition,
|
|
81
79
|
}: RunInterpolatorParams): InterpolatorResult | undefined => {
|
|
82
80
|
"worklet";
|
|
@@ -86,12 +84,13 @@ const runInterpolator = ({
|
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
try {
|
|
89
|
-
const raw = interpolator(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
const raw = interpolator(
|
|
88
|
+
createInterpolatorScope({
|
|
89
|
+
frame: props,
|
|
90
|
+
selectedFrame,
|
|
91
|
+
transition,
|
|
92
|
+
}),
|
|
93
|
+
);
|
|
95
94
|
|
|
96
95
|
const rawStyleMap: TransitionInterpolatedStyle | undefined =
|
|
97
96
|
typeof raw === "object" && raw != null ? raw : undefined;
|
|
@@ -125,10 +124,10 @@ const runInterpolator = ({
|
|
|
125
124
|
* normal interpolator selection once the gesture-driven close is no longer in
|
|
126
125
|
* play.
|
|
127
126
|
*
|
|
128
|
-
* At an ownership handoff, the
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
127
|
+
* At an ownership handoff, the current interpolator remains live but is
|
|
128
|
+
* evaluated without the next-screen relationship. The next owner replaces
|
|
129
|
+
* matching scalar keys and composes its live transforms after the current
|
|
130
|
+
* screen's self-owned transforms.
|
|
132
131
|
*/
|
|
133
132
|
export const useInterpolatedStylesMap = ({
|
|
134
133
|
enabled,
|
|
@@ -154,7 +153,6 @@ export const useInterpolatedStylesMap = ({
|
|
|
154
153
|
ancestorScreenAnimationSources,
|
|
155
154
|
descendantScreenAnimationSources,
|
|
156
155
|
} = useScreenAnimationStore();
|
|
157
|
-
const boundsAccessor = useBuildBoundsAccessor();
|
|
158
156
|
const transition = useBuildTransitionAccessor();
|
|
159
157
|
const nextInterpolatorReady = useSharedValue(0);
|
|
160
158
|
|
|
@@ -177,8 +175,6 @@ export const useInterpolatedStylesMap = ({
|
|
|
177
175
|
|
|
178
176
|
const isGesturingDuringCloseAnimation = useSharedValue(false);
|
|
179
177
|
const initialDestinationStylesReady = useSharedValue(0);
|
|
180
|
-
const frozenCurrentStylesMap =
|
|
181
|
-
useSharedValue<NormalizedTransitionInterpolatedStyle>(NO_STYLES);
|
|
182
178
|
const shouldPrepareInitialDestinationStyles =
|
|
183
179
|
enabled && !!destinationPairKey && !nextScreenKey && !!currentInterpolator;
|
|
184
180
|
|
|
@@ -261,17 +257,20 @@ export const useInterpolatedStylesMap = ({
|
|
|
261
257
|
? "current"
|
|
262
258
|
: "next";
|
|
263
259
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
260
|
+
// Once the next interpolator owns the relationship, the current
|
|
261
|
+
// interpolator remains responsible only for its own live presentation.
|
|
262
|
+
// This preserves snap-point transforms without letting current-screen
|
|
263
|
+
// unfocus rules compete with the next screen's outgoing transition.
|
|
264
|
+
const currentSelectedFrame = selectInterpolatorFrame(
|
|
265
|
+
props,
|
|
266
|
+
isInGestureMode || !!nextInterpolator,
|
|
267
|
+
);
|
|
268
|
+
const currentResult = runInterpolator({
|
|
269
|
+
interpolator: currentInterpolator,
|
|
270
|
+
props,
|
|
271
|
+
selectedFrame: currentSelectedFrame,
|
|
272
|
+
transition,
|
|
273
|
+
});
|
|
275
274
|
|
|
276
275
|
const initialDestinationStyleGate = resolveInitialDestinationStyleGate({
|
|
277
276
|
shouldPrepareStyles: shouldPrepareInitialDestinationStyles,
|
|
@@ -295,23 +294,18 @@ export const useInterpolatedStylesMap = ({
|
|
|
295
294
|
currentOwnsInterpolator: true,
|
|
296
295
|
currentStylesMap: currentResult?.stylesMap,
|
|
297
296
|
nextStylesMap: undefined,
|
|
298
|
-
frozenCurrentStylesMap: frozenCurrentStylesMap.get(),
|
|
299
297
|
});
|
|
300
298
|
|
|
301
|
-
if (handoff.nextFrozenCurrentStylesMap !== frozenCurrentStylesMap.get()) {
|
|
302
|
-
frozenCurrentStylesMap.set(handoff.nextFrozenCurrentStylesMap);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
299
|
return handoff.localStylesMaps.length
|
|
306
300
|
? handoff.localStylesMaps
|
|
307
301
|
: NO_STYLE_LAYERS;
|
|
308
302
|
}
|
|
309
303
|
|
|
304
|
+
const nextSelectedFrame = selectInterpolatorFrame(props, false);
|
|
310
305
|
const nextResult = runInterpolator({
|
|
311
306
|
interpolator: nextInterpolator,
|
|
312
307
|
props,
|
|
313
|
-
selectedFrame,
|
|
314
|
-
bounds: boundsAccessor,
|
|
308
|
+
selectedFrame: nextSelectedFrame,
|
|
315
309
|
transition,
|
|
316
310
|
});
|
|
317
311
|
|
|
@@ -326,7 +320,6 @@ export const useInterpolatedStylesMap = ({
|
|
|
326
320
|
currentOwnsInterpolator: false,
|
|
327
321
|
currentStylesMap: currentResult?.stylesMap,
|
|
328
322
|
nextStylesMap: nextResult?.stylesMap,
|
|
329
|
-
frozenCurrentStylesMap: frozenCurrentStylesMap.get(),
|
|
330
323
|
});
|
|
331
324
|
|
|
332
325
|
return handoff.localStylesMaps.length
|
|
@@ -66,13 +66,24 @@ function getMatchingSourceScreenKey(
|
|
|
66
66
|
tag: TagID,
|
|
67
67
|
destinationScreenKey: ScreenKey,
|
|
68
68
|
preferredScreenKey?: ScreenKey,
|
|
69
|
+
excludedScreenKeys?: readonly ScreenKey[],
|
|
69
70
|
): ScreenKey | null {
|
|
70
71
|
"worklet";
|
|
71
72
|
const screens = boundaryRegistry.get()[tag]?.screens;
|
|
72
73
|
if (!screens) return null;
|
|
74
|
+
const isExcluded = (screenKey: ScreenKey) => {
|
|
75
|
+
"worklet";
|
|
76
|
+
for (let index = 0; index < (excludedScreenKeys?.length ?? 0); index++) {
|
|
77
|
+
if (excludedScreenKeys?.[index] === screenKey) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
};
|
|
73
83
|
if (
|
|
74
84
|
preferredScreenKey &&
|
|
75
85
|
preferredScreenKey !== destinationScreenKey &&
|
|
86
|
+
!isExcluded(preferredScreenKey) &&
|
|
76
87
|
screens[preferredScreenKey]
|
|
77
88
|
) {
|
|
78
89
|
return preferredScreenKey;
|
|
@@ -80,7 +91,7 @@ function getMatchingSourceScreenKey(
|
|
|
80
91
|
|
|
81
92
|
let latestScreenKey: ScreenKey | null = null;
|
|
82
93
|
for (const screenKey in screens) {
|
|
83
|
-
if (screenKey !== destinationScreenKey) {
|
|
94
|
+
if (screenKey !== destinationScreenKey && !isExcluded(screenKey)) {
|
|
84
95
|
latestScreenKey = screenKey;
|
|
85
96
|
}
|
|
86
97
|
}
|
package/lib/commonjs/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.hasLocalSlot = void 0;
|
|
7
|
-
const hasLocalSlot = (localStylesMaps, slotId) => {
|
|
8
|
-
"worklet";
|
|
9
|
-
|
|
10
|
-
for (let index = 0; index < localStylesMaps.length; index++) {
|
|
11
|
-
if (localStylesMaps[index]?.[slotId] !== undefined) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return false;
|
|
16
|
-
};
|
|
17
|
-
exports.hasLocalSlot = hasLocalSlot;
|
|
18
|
-
//# sourceMappingURL=has-local-slot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["hasLocalSlot","localStylesMaps","slotId","index","length","undefined","exports"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts"],"mappings":";;;;;;AAEO,MAAMA,YAAY,GAAGA,CAC3BC,eAAiC,EACjCC,MAAc,KACV;EACJ,SAAS;;EAET,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,eAAe,CAACG,MAAM,EAAED,KAAK,EAAE,EAAE;IAC5D,IAAIF,eAAe,CAACE,KAAK,CAAC,GAAGD,MAAM,CAAC,KAAKG,SAAS,EAAE;MACnD,OAAO,IAAI;IACZ;EACD;EAEA,OAAO,KAAK;AACb,CAAC;AAACC,OAAA,CAAAN,YAAA,GAAAA,YAAA","ignoreList":[]}
|
package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useBuildBoundsAccessor = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _bounds = require("../../../../../utils/bounds");
|
|
9
|
-
var _animation = require("../../animation.provider");
|
|
10
|
-
const useBuildBoundsAccessor = () => {
|
|
11
|
-
const screenInterpolatorProps = (0, _animation.useScreenAnimationStore)(store => store.screenInterpolatorProps);
|
|
12
|
-
return (0, _react.useMemo)(() => {
|
|
13
|
-
return (0, _bounds.createBoundsAccessor)(() => {
|
|
14
|
-
"worklet";
|
|
15
|
-
|
|
16
|
-
return screenInterpolatorProps.get();
|
|
17
|
-
});
|
|
18
|
-
}, [screenInterpolatorProps]);
|
|
19
|
-
};
|
|
20
|
-
exports.useBuildBoundsAccessor = useBuildBoundsAccessor;
|
|
21
|
-
//# sourceMappingURL=use-build-bounds-accessor.js.map
|
package/lib/commonjs/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_bounds","_animation","useBuildBoundsAccessor","screenInterpolatorProps","useScreenAnimationStore","store","useMemo","createBoundsAccessor","get","exports"],"sourceRoot":"../../../../../../../src","sources":["providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,MAAMG,sBAAsB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,uBAAuB,GAAG,IAAAC,kCAAuB,EACrDC,KAAK,IAAKA,KAAK,CAACF,uBAClB,CAAC;EACD,OAAO,IAAAG,cAAO,EAAC,MAAM;IACpB,OAAO,IAAAC,4BAAoB,EAAC,MAAM;MACjC,SAAS;;MACT,OAAOJ,uBAAuB,CAACK,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC;EACH,CAAC,EAAE,CAACL,uBAAuB,CAAC,CAAC;AAC9B,CAAC;AAACM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
package/lib/module/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export const hasLocalSlot = (localStylesMaps, slotId) => {
|
|
4
|
-
"worklet";
|
|
5
|
-
|
|
6
|
-
for (let index = 0; index < localStylesMaps.length; index++) {
|
|
7
|
-
if (localStylesMaps[index]?.[slotId] !== undefined) {
|
|
8
|
-
return true;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
return false;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=has-local-slot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["hasLocalSlot","localStylesMaps","slotId","index","length","undefined"],"sourceRoot":"../../../../../../../../src","sources":["components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts"],"mappings":";;AAEA,OAAO,MAAMA,YAAY,GAAGA,CAC3BC,eAAiC,EACjCC,MAAc,KACV;EACJ,SAAS;;EAET,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,eAAe,CAACG,MAAM,EAAED,KAAK,EAAE,EAAE;IAC5D,IAAIF,eAAe,CAACE,KAAK,CAAC,GAAGD,MAAM,CAAC,KAAKG,SAAS,EAAE;MACnD,OAAO,IAAI;IACZ;EACD;EAEA,OAAO,KAAK;AACb,CAAC","ignoreList":[]}
|
package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { useMemo } from "react";
|
|
4
|
-
import { createBoundsAccessor } from "../../../../../utils/bounds";
|
|
5
|
-
import { useScreenAnimationStore } from "../../animation.provider";
|
|
6
|
-
export const useBuildBoundsAccessor = () => {
|
|
7
|
-
const screenInterpolatorProps = useScreenAnimationStore(store => store.screenInterpolatorProps);
|
|
8
|
-
return useMemo(() => {
|
|
9
|
-
return createBoundsAccessor(() => {
|
|
10
|
-
"worklet";
|
|
11
|
-
|
|
12
|
-
return screenInterpolatorProps.get();
|
|
13
|
-
});
|
|
14
|
-
}, [screenInterpolatorProps]);
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=use-build-bounds-accessor.js.map
|
package/lib/module/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","createBoundsAccessor","useScreenAnimationStore","useBuildBoundsAccessor","screenInterpolatorProps","store","get"],"sourceRoot":"../../../../../../../src","sources":["providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,uBAAuB,QAAQ,0BAA0B;AAElE,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,uBAAuB,GAAGF,uBAAuB,CACrDG,KAAK,IAAKA,KAAK,CAACD,uBAClB,CAAC;EACD,OAAOJ,OAAO,CAAC,MAAM;IACpB,OAAOC,oBAAoB,CAAC,MAAM;MACjC,SAAS;;MACT,OAAOG,uBAAuB,CAACE,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,uBAAuB,CAAC,CAAC;AAC9B,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"has-local-slot.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uEAAuE,CAAC;AAE9G,eAAO,MAAM,YAAY,GACxB,iBAAiB,gBAAgB,EACjC,QAAQ,MAAM,YAWd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-build-bounds-accessor.d.ts","sourceRoot":"","sources":["../../../../../../../src/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,qDAUlC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { LocalStyleLayers } from "../../../../../../providers/screen/styles/helpers/resolve-slot-styles";
|
|
2
|
-
|
|
3
|
-
export const hasLocalSlot = (
|
|
4
|
-
localStylesMaps: LocalStyleLayers,
|
|
5
|
-
slotId: string,
|
|
6
|
-
) => {
|
|
7
|
-
"worklet";
|
|
8
|
-
|
|
9
|
-
for (let index = 0; index < localStylesMaps.length; index++) {
|
|
10
|
-
if (localStylesMaps[index]?.[slotId] !== undefined) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return false;
|
|
16
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { createBoundsAccessor } from "../../../../../utils/bounds";
|
|
3
|
-
import { useScreenAnimationStore } from "../../animation.provider";
|
|
4
|
-
|
|
5
|
-
export const useBuildBoundsAccessor = () => {
|
|
6
|
-
const screenInterpolatorProps = useScreenAnimationStore(
|
|
7
|
-
(store) => store.screenInterpolatorProps,
|
|
8
|
-
);
|
|
9
|
-
return useMemo(() => {
|
|
10
|
-
return createBoundsAccessor(() => {
|
|
11
|
-
"worklet";
|
|
12
|
-
return screenInterpolatorProps.get();
|
|
13
|
-
});
|
|
14
|
-
}, [screenInterpolatorProps]);
|
|
15
|
-
};
|