react-native-screen-transitions 3.8.0-alpha.0 → 3.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
- package/lib/commonjs/shared/components/create-transition-aware-component.js +7 -5
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +1 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +2 -0
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +7 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/index.js +7 -0
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +40 -0
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js +51 -13
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +74 -6
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/types.js.map +1 -1
- package/lib/commonjs/shared/stores/scroll.store.js +49 -5
- package/lib/commonjs/shared/stores/scroll.store.js.map +1 -1
- package/lib/commonjs/shared/types/gesture.types.js +12 -0
- package/lib/commonjs/shared/types/gesture.types.js.map +1 -1
- package/lib/commonjs/shared/utils/animation/spring/spring.js +7 -3
- package/lib/commonjs/shared/utils/animation/spring/spring.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
- package/lib/module/shared/components/create-transition-aware-component.js +8 -6
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +1 -0
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +2 -0
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/gestures.provider.js +1 -1
- package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +7 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/index.js +1 -0
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/index.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +33 -0
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -0
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js +48 -12
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +76 -8
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/types.js.map +1 -1
- package/lib/module/shared/stores/scroll.store.js +49 -5
- package/lib/module/shared/stores/scroll.store.js.map +1 -1
- package/lib/module/shared/types/gesture.types.js +16 -0
- package/lib/module/shared/types/gesture.types.js.map +1 -1
- package/lib/module/shared/utils/animation/spring/spring.js +7 -3
- package/lib/module/shared/utils/animation/spring/spring.js.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +1 -1
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +2 -0
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +2 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/activation/pan-activation-decision.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/index.d.ts +1 -0
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +12 -0
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.d.ts +5 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts +4 -0
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
- package/lib/typescript/shared/stores/scroll.store.d.ts +15 -8
- package/lib/typescript/shared/stores/scroll.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/gesture.types.d.ts +17 -1
- package/lib/typescript/shared/types/gesture.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +1 -1
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +8 -1
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/animation/spring/spring.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +1 -1
- package/src/shared/components/create-transition-aware-component.tsx +14 -6
- package/src/shared/index.ts +4 -0
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +2 -0
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +2 -0
- package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +4 -0
- package/src/shared/providers/screen/gestures/gestures.provider.tsx +1 -1
- package/src/shared/providers/screen/gestures/pan/activation/pan-activation-decision.ts +10 -1
- package/src/shared/providers/screen/gestures/scroll-coordination/index.ts +1 -0
- package/src/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +43 -0
- package/src/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.ts +59 -4
- package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +130 -8
- package/src/shared/providers/screen/gestures/types.ts +2 -0
- package/src/shared/stores/scroll.store.ts +80 -7
- package/src/shared/types/gesture.types.ts +18 -1
- package/src/shared/types/index.ts +4 -0
- package/src/shared/types/screen.types.ts +8 -0
- package/src/shared/utils/animation/spring/spring.ts +7 -3
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import type { ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState } from "../types";
|
|
1
|
+
import type { ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, ScrollMetadataState } from "../types";
|
|
2
2
|
export declare const updateScrollGestureAxisState: (state: ScrollGestureState | null, axis: ScrollGestureAxis, patch: Partial<ScrollGestureAxisState> & {
|
|
3
3
|
isTouched?: boolean;
|
|
4
4
|
}) => ScrollGestureState;
|
|
5
|
+
export declare const updateScrollMetadataAxisState: (state: ScrollMetadataState | null, axis: ScrollGestureAxis, patch: Partial<ScrollGestureAxisState> & {
|
|
6
|
+
isTouched?: boolean;
|
|
7
|
+
}) => ScrollMetadataState;
|
|
8
|
+
export declare const clearScrollMetadataAxisState: (state: ScrollMetadataState | null, axis: ScrollGestureAxis) => ScrollMetadataState | null;
|
|
5
9
|
//# sourceMappingURL=update-scroll-gesture-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-scroll-gesture-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"update-scroll-gesture-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAuBlB,eAAO,MAAM,4BAA4B,GACxC,OAAO,kBAAkB,GAAG,IAAI,EAChC,MAAM,iBAAiB,EACvB,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC9D,kBAwBF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACzC,OAAO,mBAAmB,GAAG,IAAI,EACjC,MAAM,iBAAiB,EACvB,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC9D,mBAwBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACxC,OAAO,mBAAmB,GAAG,IAAI,EACjC,MAAM,iBAAiB,KACrB,mBAAmB,GAAG,IAOxB,CAAC"}
|
|
@@ -20,6 +20,10 @@ export declare const useScrollGestureCoordination: (props: ScrollGestureCoordina
|
|
|
20
20
|
onContentSizeChange: (width: number, height: number) => void;
|
|
21
21
|
onLayout: (event: LayoutChangeEvent) => void;
|
|
22
22
|
nativeGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/nativeGesture").NativeGesture | null;
|
|
23
|
+
metadataOwnerProviderValue: {
|
|
24
|
+
horizontal: boolean;
|
|
25
|
+
vertical: boolean;
|
|
26
|
+
};
|
|
23
27
|
};
|
|
24
28
|
export {};
|
|
25
29
|
//# sourceMappingURL=use-scroll-gesture-coordination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-scroll-gesture-coordination.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"use-scroll-gesture-coordination.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYtD,OAAO,KAAK,EACX,iBAAiB,EAIjB,MAAM,UAAU,CAAC;AAYlB,UAAU,8BAA8B;IACvC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AA4CD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GACxC,OAAO,8BAA8B;;;;;;;;;;CAqNrC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { AnimationStoreMap } from "../../../stores/animation.store";
|
|
|
4
4
|
import type { GestureStoreMap } from "../../../stores/gesture.store";
|
|
5
5
|
import type { SystemStoreMap } from "../../../stores/system.store";
|
|
6
6
|
import type { AnimationConfig, TransitionSpec } from "../../../types/animation.types";
|
|
7
|
-
import type { GestureDirections, GestureProgressMode, ResolvedGestureActivationArea, ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, SnapPanDirectionConfig, SnapPinchDirectionConfig } from "../../../types/gesture.types";
|
|
7
|
+
import type { GestureDirections, GestureProgressMode, ResolvedGestureActivationArea, ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, ScrollMetadataState, SnapPanDirectionConfig, SnapPinchDirectionConfig } from "../../../types/gesture.types";
|
|
8
8
|
import type { ClaimedDirections, DirectionOwnership } from "../../../types/ownership.types";
|
|
9
9
|
import type { ScreenTransitionConfig } from "../../../types/screen.types";
|
|
10
10
|
import type { EffectiveSnapPointsResult } from "./shared/snap-points";
|
|
@@ -17,7 +17,7 @@ export type PinchGestureEvent = GestureUpdateEvent<PinchGestureHandlerEventPaylo
|
|
|
17
17
|
export type RotationGestureEvent = GestureUpdateEvent<RotationGestureHandlerEventPayload> | GestureStateChangeEvent<RotationGestureHandlerEventPayload>;
|
|
18
18
|
/** Gesture that initiated the current simultaneous gesture composition. */
|
|
19
19
|
export type GestureCompositionActivation = "pan" | "pinch" | null;
|
|
20
|
-
export type { GestureProgressMode, ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, };
|
|
20
|
+
export type { GestureProgressMode, ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, ScrollMetadataState, };
|
|
21
21
|
export type DirectionClaim = {
|
|
22
22
|
routeKey: string;
|
|
23
23
|
isDismissing: SharedValue<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/providers/screen/gestures/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,EAC/B,kCAAkC,EAClC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAEtE,MAAM,MAAM,eAAe,GACxB,kBAAkB,CAAC,6BAA6B,CAAC,GACjD,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAC1B,kBAAkB,CAAC,+BAA+B,CAAC,GACnD,uBAAuB,CAAC,+BAA+B,CAAC,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC7B,kBAAkB,CAAC,kCAAkC,CAAC,GACtD,uBAAuB,CAAC,kCAAkC,CAAC,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,MAAM,4BAA4B,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;AAElE,YAAY,EACX,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/providers/screen/gestures/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { type SharedValue } from "react-native-reanimated";
|
|
2
|
-
import type { ScrollGestureState } from "../types/gesture.types";
|
|
2
|
+
import type { ScrollGestureAxis, ScrollGestureState, ScrollMetadataState } from "../types/gesture.types";
|
|
3
|
+
import type { ScreenKey } from "../types/screen.types";
|
|
3
4
|
export type ScrollStoreMap = {
|
|
4
|
-
|
|
5
|
+
coordination: SharedValue<ScrollGestureState | null>;
|
|
6
|
+
metadata: SharedValue<ScrollMetadataState | null>;
|
|
7
|
+
};
|
|
8
|
+
export declare const ScrollStore: {
|
|
9
|
+
createMetadataWriterId: () => string;
|
|
10
|
+
claimMetadataWriter: (routeKey: ScreenKey, axis: ScrollGestureAxis, writerId: string) => boolean;
|
|
11
|
+
releaseMetadataWriter: (routeKey: ScreenKey, axis: ScrollGestureAxis, writerId: string) => boolean;
|
|
12
|
+
hasMetadataWriters: (routeKey: ScreenKey) => boolean;
|
|
13
|
+
clearBag(routeKey: ScreenKey): void;
|
|
14
|
+
peekBag(routeKey: ScreenKey): ScrollStoreMap | undefined;
|
|
15
|
+
getBag(routeKey: ScreenKey): ScrollStoreMap;
|
|
16
|
+
getValue<K extends keyof ScrollStoreMap>(routeKey: ScreenKey, key: K): ScrollStoreMap[K];
|
|
17
|
+
getCachedBag(): ScrollStoreMap;
|
|
5
18
|
};
|
|
6
|
-
/**
|
|
7
|
-
* Route-keyed scroll geometry used by gesture activation and bounds measurement.
|
|
8
|
-
* The state tracks coordinated ScrollView offsets and dimensions so consumers
|
|
9
|
-
* can reason about overscroll without coupling to a specific scroll component.
|
|
10
|
-
*/
|
|
11
|
-
export declare const ScrollStore: import("../utils/create-store").StoreApi<ScrollStoreMap>;
|
|
12
19
|
//# sourceMappingURL=scroll.store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.store.d.ts","sourceRoot":"","sources":["../../../../src/shared/stores/scroll.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,WAAW,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scroll.store.d.ts","sourceRoot":"","sources":["../../../../src/shared/stores/scroll.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,WAAW,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,WAAW,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CAClD,CAAC;AAuEF,eAAO,MAAM,WAAW;;oCAxDb,SAAS,QACb,iBAAiB,YACb,MAAM,KACd,OAAO;sCAYC,SAAS,QACb,iBAAiB,YACb,MAAM,KACd,OAAO;mCAa4B,SAAS,KAAG,OAAO;uBA+BrC,SAAS;;;;;CAI5B,CAAC"}
|
|
@@ -5,16 +5,32 @@ export type GestureDirection = PanGestureDirection | PinchGestureDirection;
|
|
|
5
5
|
export type ActiveGesture = ResolvedPanGestureDirection | PinchGestureDirection;
|
|
6
6
|
export type GestureProgressMode = "progress-driven" | "freeform";
|
|
7
7
|
export type SnapPanAxis = "horizontal" | "vertical";
|
|
8
|
+
/**
|
|
9
|
+
* Axis reported by a transition-aware scrollable.
|
|
10
|
+
*/
|
|
8
11
|
export type ScrollGestureAxis = "vertical" | "horizontal";
|
|
12
|
+
/**
|
|
13
|
+
* Scroll geometry for one axis of a transition-aware scrollable.
|
|
14
|
+
*/
|
|
9
15
|
export type ScrollGestureAxisState = {
|
|
10
16
|
offset: number;
|
|
11
17
|
contentSize: number;
|
|
12
18
|
layoutSize: number;
|
|
19
|
+
isTouched: boolean;
|
|
13
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* Scroll metadata exposed through screen transition layouts.
|
|
23
|
+
*/
|
|
24
|
+
export type ScrollMetadataState = {
|
|
25
|
+
vertical: ScrollGestureAxisState | null;
|
|
26
|
+
horizontal: ScrollGestureAxisState | null;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Scroll geometry used by gesture coordination.
|
|
30
|
+
*/
|
|
14
31
|
export type ScrollGestureState = {
|
|
15
32
|
vertical: ScrollGestureAxisState;
|
|
16
33
|
horizontal: ScrollGestureAxisState;
|
|
17
|
-
isTouched: boolean;
|
|
18
34
|
};
|
|
19
35
|
export type SnapPanAxisConfig = {
|
|
20
36
|
collapse: ResolvedPanGestureDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gesture.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/gesture.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC5B,YAAY,GACZ,qBAAqB,GACrB,UAAU,GACV,mBAAmB,GACnB,eAAe,CAAC;AAEnB,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAChD,mBAAmB,EACnB,eAAe,CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"gesture.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/gesture.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { FALSE, TRUE } from "../constants";
|
|
2
2
|
export type { AnimatedViewStyle, AnimationConfig, ScreenInterpolationProps, ScreenStyleInterpolator, ScreenTransitionAccessor, ScreenTransitionDepthTarget, ScreenTransitionOptions, ScreenTransitionState, ScreenTransitionTarget, TransitionInterpolatedStyle, TransitionInterpolatorOptions, TransitionSlotStyle, TransitionSpec, } from "./animation.types";
|
|
3
3
|
export type { BoundsAccessor, BoundsMethod, BoundsNavigationAccessor, BoundsNavigationRevealOptions, BoundsNavigationRevealStyle, BoundsNavigationZoomOpacityRange, BoundsNavigationZoomOpacityRanges, BoundsNavigationZoomOptions, BoundsNavigationZoomStyle, } from "./bounds.types";
|
|
4
|
-
export type { ActivationArea, GestureActivationArea, GestureDirection, GestureDirectionActivationArea, GestureDirectionConfig, GestureDirectionEntry, GestureDirectionOption, GestureValues, PanGestureDirection, PinchGestureDirection, SideActivation, } from "./gesture.types";
|
|
4
|
+
export type { ActivationArea, GestureActivationArea, GestureDirection, GestureDirectionActivationArea, GestureDirectionConfig, GestureDirectionEntry, GestureDirectionOption, GestureValues, PanGestureDirection, PinchGestureDirection, ScrollGestureAxis, ScrollGestureAxisState, ScrollGestureState, ScrollMetadataState, SideActivation, } from "./gesture.types";
|
|
5
5
|
export type { OverlayProps } from "./overlay.types";
|
|
6
6
|
export type { GestureTracking, InactiveBehavior, Layout, ScreenKey, ScreenTransitionConfig, TransitionAwareProps, } from "./screen.types";
|
|
7
7
|
export type { BaseStackDescriptor, BaseStackNavigation, BaseStackRoute, BaseStackScene, BaseStackState, DescriptorMap, StackDescriptorSource, StackSceneActivity, } from "./stack.types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,eAAe,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AnimatedProps } from "react-native-reanimated";
|
|
2
2
|
import type { ScreenStyleInterpolator, TransitionSpec } from "./animation.types";
|
|
3
|
-
import type { GestureActivationArea, GestureDirectionOption, GestureProgressMode } from "./gesture.types";
|
|
3
|
+
import type { GestureActivationArea, GestureDirectionOption, GestureProgressMode, ScrollMetadataState } from "./gesture.types";
|
|
4
4
|
import type { OverlayProps } from "./overlay.types";
|
|
5
5
|
export type Layout = {
|
|
6
6
|
width: number;
|
|
@@ -18,6 +18,13 @@ export type ScreenLayouts = {
|
|
|
18
18
|
* auto snap-point sizing. It is undefined until a real measurement exists.
|
|
19
19
|
*/
|
|
20
20
|
content?: Layout;
|
|
21
|
+
/**
|
|
22
|
+
* Scroll metadata from the primary transition-aware scrollable on this screen.
|
|
23
|
+
*
|
|
24
|
+
* For nested same-axis scrollables, the outermost scrollable owns that axis.
|
|
25
|
+
* Cross-axis nested scrollables can each publish their own axis.
|
|
26
|
+
*/
|
|
27
|
+
scroll?: ScrollMetadataState;
|
|
21
28
|
};
|
|
22
29
|
export type ScreenKey = string;
|
|
23
30
|
export type SheetScrollGestureBehavior = "expand-and-collapse" | "collapse-only";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACX,uBAAuB,EACvB,cAAc,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"screen.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/screen.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/animation/spring/spring.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA2FpD,KAAK,cAAc,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,sBAAsB,KAC7B,MAAM,CAAC;AAEZ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/animation/spring/spring.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA2FpD,KAAK,cAAc,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,sBAAsB,KAC7B,MAAM,CAAC;AAEZ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAiOd,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -39,7 +39,7 @@ export const useMeasurer = ({
|
|
|
39
39
|
const { width: viewportWidth, height: viewportHeight } =
|
|
40
40
|
useWindowDimensions();
|
|
41
41
|
|
|
42
|
-
const scrollState = ScrollStore.getValue(currentScreenKey, "
|
|
42
|
+
const scrollState = ScrollStore.getValue(currentScreenKey, "coordination");
|
|
43
43
|
const pendingLifecycleStartBlockCount = SystemStore.getValue(
|
|
44
44
|
currentScreenKey,
|
|
45
45
|
"pendingLifecycleStartBlockCount",
|
|
@@ -12,7 +12,10 @@ import Animated, {
|
|
|
12
12
|
} from "react-native-reanimated";
|
|
13
13
|
import { NO_PROPS, NO_STYLES } from "../constants";
|
|
14
14
|
import { RegisterBoundsProvider } from "../providers/register-bounds.provider";
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
ScrollMetadataOwnerProvider,
|
|
17
|
+
useScrollGestureCoordination,
|
|
18
|
+
} from "../providers/screen/gestures/scroll-coordination";
|
|
16
19
|
import { useScreenStyles } from "../providers/screen/styles";
|
|
17
20
|
import type { TransitionAwareProps } from "../types/screen.types";
|
|
18
21
|
|
|
@@ -55,6 +58,7 @@ export function createTransitionAwareComponent<P extends object>(
|
|
|
55
58
|
onContentSizeChange,
|
|
56
59
|
onLayout,
|
|
57
60
|
nativeGesture,
|
|
61
|
+
metadataOwnerProviderValue,
|
|
58
62
|
} = useScrollGestureCoordination({
|
|
59
63
|
onContentSizeChange: scrollableProps.onContentSizeChange,
|
|
60
64
|
onLayout: scrollableProps.onLayout,
|
|
@@ -89,14 +93,18 @@ export function createTransitionAwareComponent<P extends object>(
|
|
|
89
93
|
/>
|
|
90
94
|
);
|
|
91
95
|
|
|
92
|
-
|
|
93
|
-
return scrollableComponent;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return (
|
|
96
|
+
const coordinatedScrollableComponent = nativeGesture ? (
|
|
97
97
|
<GestureDetector gesture={nativeGesture}>
|
|
98
98
|
{scrollableComponent}
|
|
99
99
|
</GestureDetector>
|
|
100
|
+
) : (
|
|
101
|
+
scrollableComponent
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<ScrollMetadataOwnerProvider value={metadataOwnerProviderValue}>
|
|
106
|
+
{coordinatedScrollableComponent}
|
|
107
|
+
</ScrollMetadataOwnerProvider>
|
|
100
108
|
);
|
|
101
109
|
});
|
|
102
110
|
|
package/src/shared/index.ts
CHANGED
|
@@ -65,6 +65,10 @@ export type {
|
|
|
65
65
|
ScreenTransitionConfig,
|
|
66
66
|
ScreenTransitionDepthTarget,
|
|
67
67
|
ScreenTransitionTarget,
|
|
68
|
+
ScrollGestureAxis,
|
|
69
|
+
ScrollGestureAxisState,
|
|
70
|
+
ScrollGestureState,
|
|
71
|
+
ScrollMetadataState,
|
|
68
72
|
TransitionInterpolatedStyle,
|
|
69
73
|
TransitionSlotStyle,
|
|
70
74
|
TransitionSpec,
|
|
@@ -149,6 +149,8 @@ export const hydrateTransitionState = (
|
|
|
149
149
|
out.layouts.content = undefined;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
out.layouts.scroll = s.scrollMetadata.get() ?? undefined;
|
|
153
|
+
|
|
152
154
|
const autoSnapPoint = s.resolvedAutoSnapPoint.get();
|
|
153
155
|
const resolvedAutoSnap =
|
|
154
156
|
s.hasAutoSnapPoint && autoSnapPoint > 0 ? autoSnapPoint : null;
|
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
ScreenTransitionOptions,
|
|
5
5
|
ScreenTransitionState,
|
|
6
6
|
} from "../../../../../types/animation.types";
|
|
7
|
+
import type { ScrollMetadataState } from "../../../../../types/gesture.types";
|
|
7
8
|
import type { Layout } from "../../../../../types/screen.types";
|
|
8
9
|
import type { BaseStackRoute } from "../../../../../types/stack.types";
|
|
9
10
|
|
|
@@ -23,6 +24,7 @@ export type BuiltState = {
|
|
|
23
24
|
targetProgress: SharedValue<number>;
|
|
24
25
|
resolvedAutoSnapPoint: SharedValue<number>;
|
|
25
26
|
measuredContentLayout: SharedValue<Layout | null>;
|
|
27
|
+
scrollMetadata: SharedValue<ScrollMetadataState | null>;
|
|
26
28
|
contentLayoutSlot: Layout;
|
|
27
29
|
hasAutoSnapPoint: boolean;
|
|
28
30
|
sortedNumericSnapPoints: number[];
|
|
@@ -6,11 +6,13 @@ import {
|
|
|
6
6
|
GestureStore,
|
|
7
7
|
type GestureStoreMap,
|
|
8
8
|
} from "../../../../stores/gesture.store";
|
|
9
|
+
import { ScrollStore } from "../../../../stores/scroll.store";
|
|
9
10
|
import { SystemStore } from "../../../../stores/system.store";
|
|
10
11
|
import type {
|
|
11
12
|
BaseStackRoute,
|
|
12
13
|
Layout,
|
|
13
14
|
ScreenTransitionState,
|
|
15
|
+
ScrollMetadataState,
|
|
14
16
|
} from "../../../../types";
|
|
15
17
|
import type { ScreenTransitionOptions } from "../../../../types/animation.types";
|
|
16
18
|
import type { BaseDescriptor } from "../../descriptors";
|
|
@@ -33,6 +35,7 @@ type BuiltState = {
|
|
|
33
35
|
targetProgress: SharedValue<number>;
|
|
34
36
|
resolvedAutoSnapPoint: SharedValue<number>;
|
|
35
37
|
measuredContentLayout: SharedValue<Layout | null>;
|
|
38
|
+
scrollMetadata: SharedValue<ScrollMetadataState | null>;
|
|
36
39
|
contentLayoutSlot: Layout;
|
|
37
40
|
hasAutoSnapPoint: boolean;
|
|
38
41
|
sortedNumericSnapPoints: number[];
|
|
@@ -72,6 +75,7 @@ export const useBuildTransitionState = (
|
|
|
72
75
|
targetProgress: SystemStore.getValue(key, "targetProgress"),
|
|
73
76
|
resolvedAutoSnapPoint: SystemStore.getValue(key, "resolvedAutoSnapPoint"),
|
|
74
77
|
measuredContentLayout: SystemStore.getValue(key, "measuredContentLayout"),
|
|
78
|
+
scrollMetadata: ScrollStore.getValue(key, "metadata"),
|
|
75
79
|
contentLayoutSlot: { width: 0, height: 0 },
|
|
76
80
|
hasAutoSnapPoint: snapPoints?.includes("auto") ?? false,
|
|
77
81
|
sortedNumericSnapPoints,
|
|
@@ -31,7 +31,7 @@ export const {
|
|
|
31
31
|
const gestureConfig = useScreenGestureConfig();
|
|
32
32
|
const { currentScreenKey } = useDescriptorDerivations();
|
|
33
33
|
|
|
34
|
-
const scrollState = ScrollStore.getValue(currentScreenKey, "
|
|
34
|
+
const scrollState = ScrollStore.getValue(currentScreenKey, "coordination");
|
|
35
35
|
|
|
36
36
|
// Ancestors read this before activating. If a nested screen claims the same
|
|
37
37
|
// direction, it writes here so the ancestor can fail and let it take priority.
|
|
@@ -280,13 +280,22 @@ const resolveDismissingDecision = (
|
|
|
280
280
|
);
|
|
281
281
|
};
|
|
282
282
|
|
|
283
|
+
const isVerticalDirection = (direction: Direction) => {
|
|
284
|
+
"worklet";
|
|
285
|
+
return direction === "vertical" || direction === "vertical-inverted";
|
|
286
|
+
};
|
|
287
|
+
|
|
283
288
|
const resolveUntouchedScrollDecision = (
|
|
284
289
|
scrollState: ScrollGestureState | null,
|
|
285
290
|
swipeDirection: Direction,
|
|
286
291
|
nextActivationState: GestureActivationState,
|
|
287
292
|
): PanActivationDecision | null => {
|
|
288
293
|
"worklet";
|
|
289
|
-
|
|
294
|
+
const axisState = isVerticalDirection(swipeDirection)
|
|
295
|
+
? scrollState?.vertical
|
|
296
|
+
: scrollState?.horizontal;
|
|
297
|
+
|
|
298
|
+
if (axisState?.isTouched ?? false) {
|
|
290
299
|
return null;
|
|
291
300
|
}
|
|
292
301
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type ReactNode, useMemo } from "react";
|
|
2
|
+
import createProvider from "../../../../utils/create-provider";
|
|
3
|
+
import type { ScrollGestureAxis } from "../types";
|
|
4
|
+
|
|
5
|
+
type ScrollMetadataOwnerContextValue = Record<ScrollGestureAxis, boolean>;
|
|
6
|
+
|
|
7
|
+
interface ScrollMetadataOwnerProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
value: ScrollMetadataOwnerContextValue;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const DEFAULT_SCROLL_METADATA_OWNER_CONTEXT: ScrollMetadataOwnerContextValue = {
|
|
13
|
+
vertical: false,
|
|
14
|
+
horizontal: false,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const {
|
|
18
|
+
ScrollMetadataOwnerProvider,
|
|
19
|
+
useScrollMetadataOwnerContext: useMaybeScrollMetadataOwnerContext,
|
|
20
|
+
} = createProvider("ScrollMetadataOwner", { guarded: false })<
|
|
21
|
+
ScrollMetadataOwnerProviderProps,
|
|
22
|
+
ScrollMetadataOwnerContextValue
|
|
23
|
+
>(({ children, value }) => ({ children, value }));
|
|
24
|
+
|
|
25
|
+
export const useScrollMetadataOwnerContext = () =>
|
|
26
|
+
useMaybeScrollMetadataOwnerContext() ?? DEFAULT_SCROLL_METADATA_OWNER_CONTEXT;
|
|
27
|
+
|
|
28
|
+
export const useScrollMetadataOwnerProviderValue = (
|
|
29
|
+
axis: ScrollGestureAxis,
|
|
30
|
+
) => {
|
|
31
|
+
const parent = useScrollMetadataOwnerContext();
|
|
32
|
+
|
|
33
|
+
return useMemo(() => {
|
|
34
|
+
if (parent[axis]) return parent;
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
...parent,
|
|
38
|
+
[axis]: true,
|
|
39
|
+
};
|
|
40
|
+
}, [axis, parent]);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { ScrollMetadataOwnerProvider };
|
package/src/shared/providers/screen/gestures/scroll-coordination/update-scroll-gesture-state.ts
CHANGED
|
@@ -2,14 +2,27 @@ import type {
|
|
|
2
2
|
ScrollGestureAxis,
|
|
3
3
|
ScrollGestureAxisState,
|
|
4
4
|
ScrollGestureState,
|
|
5
|
+
ScrollMetadataState,
|
|
5
6
|
} from "../types";
|
|
6
7
|
|
|
8
|
+
function createScrollGestureAxisState(): ScrollGestureAxisState {
|
|
9
|
+
"worklet";
|
|
10
|
+
return { offset: 0, contentSize: 0, layoutSize: 0, isTouched: false };
|
|
11
|
+
}
|
|
12
|
+
|
|
7
13
|
const createScrollGestureState = (): ScrollGestureState => {
|
|
8
14
|
"worklet";
|
|
9
15
|
return {
|
|
10
|
-
vertical:
|
|
11
|
-
horizontal:
|
|
12
|
-
|
|
16
|
+
vertical: createScrollGestureAxisState(),
|
|
17
|
+
horizontal: createScrollGestureAxisState(),
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const createScrollMetadataState = (): ScrollMetadataState => {
|
|
22
|
+
"worklet";
|
|
23
|
+
return {
|
|
24
|
+
vertical: null,
|
|
25
|
+
horizontal: null,
|
|
13
26
|
};
|
|
14
27
|
};
|
|
15
28
|
|
|
@@ -37,8 +50,50 @@ export const updateScrollGestureAxisState = (
|
|
|
37
50
|
}
|
|
38
51
|
|
|
39
52
|
if (patch.isTouched !== undefined) {
|
|
40
|
-
|
|
53
|
+
axisState.isTouched = patch.isTouched;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return nextState;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const updateScrollMetadataAxisState = (
|
|
60
|
+
state: ScrollMetadataState | null,
|
|
61
|
+
axis: ScrollGestureAxis,
|
|
62
|
+
patch: Partial<ScrollGestureAxisState> & { isTouched?: boolean },
|
|
63
|
+
): ScrollMetadataState => {
|
|
64
|
+
"worklet";
|
|
65
|
+
|
|
66
|
+
const nextState = state ?? createScrollMetadataState();
|
|
67
|
+
const axisState = nextState[axis] ?? createScrollGestureAxisState();
|
|
68
|
+
nextState[axis] = axisState;
|
|
69
|
+
|
|
70
|
+
if (patch.offset !== undefined) {
|
|
71
|
+
axisState.offset = patch.offset;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (patch.contentSize !== undefined) {
|
|
75
|
+
axisState.contentSize = patch.contentSize;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (patch.layoutSize !== undefined) {
|
|
79
|
+
axisState.layoutSize = patch.layoutSize;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (patch.isTouched !== undefined) {
|
|
83
|
+
axisState.isTouched = patch.isTouched;
|
|
41
84
|
}
|
|
42
85
|
|
|
43
86
|
return nextState;
|
|
44
87
|
};
|
|
88
|
+
|
|
89
|
+
export const clearScrollMetadataAxisState = (
|
|
90
|
+
state: ScrollMetadataState | null,
|
|
91
|
+
axis: ScrollGestureAxis,
|
|
92
|
+
): ScrollMetadataState | null => {
|
|
93
|
+
"worklet";
|
|
94
|
+
if (!state) return null;
|
|
95
|
+
|
|
96
|
+
state[axis] = null;
|
|
97
|
+
|
|
98
|
+
return state.vertical || state.horizontal ? state : null;
|
|
99
|
+
};
|