react-native-screen-transitions 3.8.0-alpha.0 → 3.8.0-beta.1
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/animation/snap-to.js +1 -1
- package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js +10 -2
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +2 -2
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js.map +1 -1
- 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-boundary-component/hooks/use-refresh-boundary.js +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-refresh-boundary.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/components/overlay/variations/float-overlay.js +9 -6
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js +2 -2
- package/lib/commonjs/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -2
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/commonjs/shared/configs/presets.js +5 -8
- package/lib/commonjs/shared/configs/presets.js.map +1 -1
- package/lib/commonjs/shared/constants.js +18 -2
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -8
- package/lib/commonjs/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js +26 -31
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +30 -4
- package/lib/commonjs/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +3 -3
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +3 -3
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -2
- 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 +7 -8
- package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +3 -7
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +8 -2
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +7 -4
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +20 -36
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js +12 -21
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js +40 -39
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +11 -21
- package/lib/commonjs/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +4 -11
- package/lib/commonjs/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +12 -10
- package/lib/commonjs/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +13 -10
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +15 -11
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +28 -23
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +3 -3
- package/lib/commonjs/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +4 -11
- package/lib/commonjs/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +12 -10
- package/lib/commonjs/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +3 -10
- package/lib/commonjs/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.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/shared/physics.js +23 -23
- package/lib/commonjs/shared/providers/screen/gestures/shared/physics.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js +0 -11
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/reset.js +17 -10
- package/lib/commonjs/shared/providers/screen/gestures/shared/reset.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/snap-points.js +6 -7
- package/lib/commonjs/shared/providers/screen/gestures/shared/snap-points.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js +32 -0
- package/lib/commonjs/shared/providers/screen/gestures/shared/snapshot.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/gestures/shared/values.js +65 -0
- package/lib/commonjs/shared/providers/screen/gestures/shared/values.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/gestures/types.js +1 -1
- package/lib/commonjs/shared/providers/screen/options/helpers.js +1 -19
- package/lib/commonjs/shared/providers/screen/options/helpers.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +8 -8
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -2
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/commonjs/shared/stores/animation.store.js +6 -6
- package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
- package/lib/commonjs/shared/stores/gesture.store.js +56 -0
- package/lib/commonjs/shared/stores/gesture.store.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 +18 -0
- package/lib/commonjs/shared/types/gesture.types.js.map +1 -1
- package/lib/commonjs/shared/utils/animation/animate-to-progress.js +3 -3
- package/lib/commonjs/shared/utils/animation/animate-to-progress.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/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js +39 -34
- package/lib/commonjs/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +37 -28
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/module/shared/animation/snap-to.js +1 -1
- package/lib/module/shared/animation/snap-to.js.map +1 -1
- package/lib/module/shared/components/activity/variants/activity-screen.js +10 -2
- package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.js +2 -2
- package/lib/module/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.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-boundary-component/hooks/use-refresh-boundary.js +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-refresh-boundary.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/components/overlay/variations/float-overlay.js +9 -6
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/module/shared/components/screen-container/hooks/use-content-layout.js +2 -2
- package/lib/module/shared/components/screen-container/hooks/use-content-layout.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/backdrop.js +1 -1
- package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js +2 -2
- package/lib/module/shared/components/screen-lifecycle/hooks/use-open-transition-intent.js.map +1 -1
- package/lib/module/shared/configs/presets.js +5 -8
- package/lib/module/shared/configs/presets.js.map +1 -1
- package/lib/module/shared/constants.js +17 -1
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js +2 -8
- package/lib/module/shared/providers/screen/animation/helpers/build-screen-transition-options.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js +25 -30
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js +31 -5
- package/lib/module/shared/providers/screen/animation/helpers/hydrate-transition-state/index.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +3 -3
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +3 -3
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +4 -2
- 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 +7 -8
- package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js +3 -7
- package/lib/module/shared/providers/screen/gestures/hooks/use-stable-runtime-config.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js +8 -2
- package/lib/module/shared/providers/screen/gestures/pan/activation/pan-activation-decision.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +7 -4
- package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js +20 -36
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js +12 -21
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-release.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js +42 -41
- package/lib/module/shared/providers/screen/gestures/pan/behavior/pan-reset.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js +11 -21
- package/lib/module/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js +4 -11
- package/lib/module/shared/providers/screen/gestures/pan/use-build-pan-gesture.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js +12 -10
- package/lib/module/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js +13 -10
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js +16 -12
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-release.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js +30 -25
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/pinch-reset.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js +3 -3
- package/lib/module/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js +4 -11
- package/lib/module/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js +12 -10
- package/lib/module/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.js +3 -10
- package/lib/module/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.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/shared/physics.js +21 -22
- package/lib/module/shared/providers/screen/gestures/shared/physics.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/policy.js +1 -12
- package/lib/module/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/reset.js +17 -8
- package/lib/module/shared/providers/screen/gestures/shared/reset.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/snap-points.js +6 -7
- package/lib/module/shared/providers/screen/gestures/shared/snap-points.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/snapshot.js +27 -0
- package/lib/module/shared/providers/screen/gestures/shared/snapshot.js.map +1 -0
- package/lib/module/shared/providers/screen/gestures/shared/values.js +54 -0
- package/lib/module/shared/providers/screen/gestures/shared/values.js.map +1 -0
- package/lib/module/shared/providers/screen/gestures/types.js +1 -1
- package/lib/module/shared/providers/screen/options/helpers.js +2 -20
- package/lib/module/shared/providers/screen/options/helpers.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +8 -8
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +2 -2
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/module/shared/stores/animation.store.js +6 -6
- package/lib/module/shared/stores/animation.store.js.map +1 -1
- package/lib/module/shared/stores/gesture.store.js +56 -0
- package/lib/module/shared/stores/gesture.store.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/animation.types.js.map +1 -1
- package/lib/module/shared/types/gesture.types.js +23 -0
- package/lib/module/shared/types/gesture.types.js.map +1 -1
- package/lib/module/shared/utils/animation/animate-to-progress.js +3 -3
- package/lib/module/shared/utils/animation/animate-to-progress.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/module/shared/utils/bounds/helpers/prepare-bound-styles.js +1 -1
- package/lib/module/shared/utils/bounds/helpers/prepare-bound-styles.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js +39 -34
- package/lib/module/shared/utils/bounds/navigation/reveal/build.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js +37 -28
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-refresh-boundary.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +1 -2
- package/lib/typescript/shared/constants.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/build-screen-transition-options.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.d.ts +7 -3
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.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 +4 -2
- 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/stack-progress.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +4 -3
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-stable-runtime-config.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/pan/activation/use-pan-activation.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-release.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts +3 -12
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/pan-reset.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/use-build-pan-gesture.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/pan/use-build-pan-gesture.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-release.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/pinch-reset.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.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/shared/physics.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/shared/physics.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts +1 -3
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/reset.d.ts +7 -4
- package/lib/typescript/shared/providers/screen/gestures/shared/reset.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/snap-points.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/snapshot.d.ts +7 -0
- package/lib/typescript/shared/providers/screen/gestures/shared/snapshot.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/gestures/shared/values.d.ts +9 -0
- package/lib/typescript/shared/providers/screen/gestures/shared/values.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts +6 -13
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/options/helpers.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/options/types.d.ts +0 -2
- package/lib/typescript/shared/providers/screen/options/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
- package/lib/typescript/shared/stores/animation.store.d.ts +4 -4
- package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
- package/lib/typescript/shared/stores/gesture.store.d.ts +23 -0
- package/lib/typescript/shared/stores/gesture.store.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/animation.types.d.ts +8 -0
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +12 -8
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/gesture.types.d.ts +64 -14
- 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 +33 -9
- 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/lib/typescript/shared/utils/bounds/navigation/reveal/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/types/options.d.ts +8 -0
- package/lib/typescript/shared/utils/bounds/types/options.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/animation/snap-to.ts +1 -1
- package/src/shared/components/activity/variants/activity-screen.tsx +8 -2
- package/src/shared/components/create-boundary-component/hooks/use-initial-destination-measurement.ts +5 -2
- package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +1 -1
- package/src/shared/components/create-boundary-component/hooks/use-refresh-boundary.ts +4 -1
- package/src/shared/components/create-transition-aware-component.tsx +14 -6
- package/src/shared/components/overlay/variations/float-overlay.tsx +11 -5
- package/src/shared/components/screen-container/hooks/use-content-layout.ts +2 -2
- package/src/shared/components/screen-container/layers/backdrop.tsx +1 -1
- package/src/shared/components/screen-lifecycle/hooks/use-open-transition-intent.ts +2 -2
- package/src/shared/configs/presets.ts +6 -8
- package/src/shared/constants.ts +16 -6
- package/src/shared/index.ts +6 -0
- package/src/shared/providers/screen/animation/helpers/build-screen-transition-options.ts +2 -17
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/gesture-progress.ts +54 -53
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/index.ts +74 -8
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +4 -2
- package/src/shared/providers/screen/animation/helpers/pipeline.ts +3 -3
- package/src/shared/providers/screen/animation/helpers/stack-progress.ts +3 -3
- package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +8 -4
- package/src/shared/providers/screen/gestures/gestures.provider.tsx +8 -10
- package/src/shared/providers/screen/gestures/hooks/use-stable-runtime-config.ts +2 -5
- package/src/shared/providers/screen/gestures/pan/activation/pan-activation-decision.ts +11 -2
- package/src/shared/providers/screen/gestures/pan/activation/use-pan-activation.ts +9 -7
- package/src/shared/providers/screen/gestures/pan/behavior/pan-lifecycle.ts +25 -38
- package/src/shared/providers/screen/gestures/pan/behavior/pan-release.ts +23 -25
- package/src/shared/providers/screen/gestures/pan/behavior/pan-reset.ts +45 -77
- package/src/shared/providers/screen/gestures/pan/behavior/use-pan-behavior.ts +12 -20
- package/src/shared/providers/screen/gestures/pan/use-build-pan-gesture.ts +5 -11
- package/src/shared/providers/screen/gestures/pinch/activation/use-pinch-activation.ts +14 -16
- package/src/shared/providers/screen/gestures/pinch/behavior/pinch-lifecycle.ts +13 -9
- package/src/shared/providers/screen/gestures/pinch/behavior/pinch-release.ts +31 -16
- package/src/shared/providers/screen/gestures/pinch/behavior/pinch-reset.ts +32 -41
- package/src/shared/providers/screen/gestures/pinch/behavior/use-pinch-behavior.ts +4 -4
- package/src/shared/providers/screen/gestures/pinch/use-build-pinch-gesture.ts +5 -10
- package/src/shared/providers/screen/gestures/rotation/activation/use-rotation-activation.ts +14 -13
- package/src/shared/providers/screen/gestures/rotation/use-build-rotation-gesture.ts +4 -9
- 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/shared/physics.ts +15 -32
- package/src/shared/providers/screen/gestures/shared/policy.ts +0 -15
- package/src/shared/providers/screen/gestures/shared/reset.ts +33 -11
- package/src/shared/providers/screen/gestures/shared/snap-points.ts +8 -7
- package/src/shared/providers/screen/gestures/shared/snapshot.ts +33 -0
- package/src/shared/providers/screen/gestures/shared/values.ts +52 -0
- package/src/shared/providers/screen/gestures/types.ts +6 -13
- package/src/shared/providers/screen/options/helpers.ts +0 -44
- package/src/shared/providers/screen/options/types.ts +0 -2
- package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +8 -8
- package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +3 -2
- package/src/shared/stores/animation.store.ts +8 -8
- package/src/shared/stores/gesture.store.ts +81 -0
- package/src/shared/stores/scroll.store.ts +80 -7
- package/src/shared/types/animation.types.ts +9 -0
- package/src/shared/types/bounds.types.ts +12 -8
- package/src/shared/types/gesture.types.ts +66 -15
- package/src/shared/types/index.ts +6 -0
- package/src/shared/types/screen.types.ts +33 -8
- package/src/shared/utils/animation/animate-to-progress.ts +3 -3
- package/src/shared/utils/animation/spring/spring.ts +7 -3
- package/src/shared/utils/bounds/helpers/prepare-bound-styles.ts +1 -1
- package/src/shared/utils/bounds/navigation/reveal/build.ts +42 -46
- package/src/shared/utils/bounds/navigation/zoom/build.ts +36 -33
- package/src/shared/utils/bounds/types/options.ts +9 -0
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js +0 -32
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js.map +0 -1
- package/lib/commonjs/shared/utils/gesture-progress-mode.js +0 -50
- package/lib/commonjs/shared/utils/gesture-progress-mode.js.map +0 -1
- package/lib/module/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js +0 -27
- package/lib/module/shared/providers/screen/gestures/hooks/use-gesture-builder-state.js.map +0 -1
- package/lib/module/shared/utils/gesture-progress-mode.js +0 -42
- package/lib/module/shared/utils/gesture-progress-mode.js.map +0 -1
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-gesture-builder-state.d.ts +0 -21
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-gesture-builder-state.d.ts.map +0 -1
- package/lib/typescript/shared/utils/gesture-progress-mode.d.ts +0 -14
- package/lib/typescript/shared/utils/gesture-progress-mode.d.ts.map +0 -1
- package/src/shared/providers/screen/gestures/hooks/use-gesture-builder-state.ts +0 -31
- package/src/shared/utils/gesture-progress-mode.ts +0 -67
package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
1
|
+
import { useLayoutEffect, useMemo, useState } from "react";
|
|
2
2
|
import type { LayoutChangeEvent } from "react-native";
|
|
3
3
|
import { Gesture, type GestureType } from "react-native-gesture-handler";
|
|
4
4
|
import {
|
|
@@ -9,13 +9,23 @@ import {
|
|
|
9
9
|
import { useSharedValueState } from "../../../../hooks/reanimated/use-shared-value-state";
|
|
10
10
|
import useStableCallback from "../../../../hooks/use-stable-callback";
|
|
11
11
|
import { AnimationStore } from "../../../../stores/animation.store";
|
|
12
|
+
import { ScrollStore } from "../../../../stores/scroll.store";
|
|
12
13
|
import { useGestureContext } from "../gestures.provider";
|
|
13
14
|
import type {
|
|
14
15
|
ScrollGestureAxis,
|
|
15
16
|
ScrollGestureAxisState,
|
|
16
17
|
ScrollGestureState,
|
|
18
|
+
ScrollMetadataState,
|
|
17
19
|
} from "../types";
|
|
18
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
useScrollMetadataOwnerContext,
|
|
22
|
+
useScrollMetadataOwnerProviderValue,
|
|
23
|
+
} from "./scroll-metadata-owner";
|
|
24
|
+
import {
|
|
25
|
+
clearScrollMetadataAxisState,
|
|
26
|
+
updateScrollGestureAxisState,
|
|
27
|
+
updateScrollMetadataAxisState,
|
|
28
|
+
} from "./update-scroll-gesture-state";
|
|
19
29
|
import { walkUpScrollGestureCoordination } from "./walk-up-scroll-gesture-coordination";
|
|
20
30
|
|
|
21
31
|
interface ScrollGestureCoordinationProps {
|
|
@@ -41,6 +51,31 @@ const modifyScrollGestureAxisState = (
|
|
|
41
51
|
});
|
|
42
52
|
};
|
|
43
53
|
|
|
54
|
+
const modifyScrollMetadataAxisState = (
|
|
55
|
+
scrollState: SharedValue<ScrollMetadataState | null>,
|
|
56
|
+
axis: ScrollGestureAxis,
|
|
57
|
+
patch: ScrollGesturePatch,
|
|
58
|
+
) => {
|
|
59
|
+
"worklet";
|
|
60
|
+
|
|
61
|
+
scrollState.modify(<T extends ScrollMetadataState | null>(state: T): T => {
|
|
62
|
+
"worklet";
|
|
63
|
+
return updateScrollMetadataAxisState(state, axis, patch) as T;
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const clearScrollMetadataAxis = (
|
|
68
|
+
scrollState: SharedValue<ScrollMetadataState | null>,
|
|
69
|
+
axis: ScrollGestureAxis,
|
|
70
|
+
) => {
|
|
71
|
+
"worklet";
|
|
72
|
+
|
|
73
|
+
scrollState.modify(<T extends ScrollMetadataState | null>(state: T): T => {
|
|
74
|
+
"worklet";
|
|
75
|
+
return clearScrollMetadataAxisState(state, axis) as T;
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
|
|
44
79
|
/**
|
|
45
80
|
* Returns scroll handlers and a native gesture for ScrollView coordination.
|
|
46
81
|
*
|
|
@@ -56,11 +91,63 @@ export const useScrollGestureCoordination = (
|
|
|
56
91
|
const context = useGestureContext();
|
|
57
92
|
const scrollDirection = props.direction ?? "vertical";
|
|
58
93
|
|
|
94
|
+
const metadataOwnerContext = useScrollMetadataOwnerContext();
|
|
95
|
+
const metadataOwnerProviderValue =
|
|
96
|
+
useScrollMetadataOwnerProviderValue(scrollDirection);
|
|
97
|
+
const isFirstMetadataWriterInTree = !metadataOwnerContext[scrollDirection];
|
|
98
|
+
const [metadataWriterId] = useState(() =>
|
|
99
|
+
ScrollStore.createMetadataWriterId(),
|
|
100
|
+
);
|
|
101
|
+
const [writesMetadata, setWritesMetadata] = useState(false);
|
|
102
|
+
|
|
59
103
|
const { scrollStates, panGestures, pinchGestures, ownerRouteKeys } = useMemo(
|
|
60
104
|
() => walkUpScrollGestureCoordination(context, scrollDirection),
|
|
61
105
|
[context, scrollDirection],
|
|
62
106
|
);
|
|
63
107
|
|
|
108
|
+
const routeKey = context?.routeKey;
|
|
109
|
+
const metadataState = useMemo(
|
|
110
|
+
() => (routeKey ? ScrollStore.getValue(routeKey, "metadata") : null),
|
|
111
|
+
[routeKey],
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
useLayoutEffect(() => {
|
|
115
|
+
if (!routeKey || !isFirstMetadataWriterInTree) {
|
|
116
|
+
setWritesMetadata(false);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const claimed = ScrollStore.claimMetadataWriter(
|
|
121
|
+
routeKey,
|
|
122
|
+
scrollDirection,
|
|
123
|
+
metadataWriterId,
|
|
124
|
+
);
|
|
125
|
+
setWritesMetadata(claimed);
|
|
126
|
+
|
|
127
|
+
return () => {
|
|
128
|
+
const released = ScrollStore.releaseMetadataWriter(
|
|
129
|
+
routeKey,
|
|
130
|
+
scrollDirection,
|
|
131
|
+
metadataWriterId,
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
if (!released || !metadataState) return;
|
|
135
|
+
|
|
136
|
+
if (!ScrollStore.hasMetadataWriters(routeKey)) {
|
|
137
|
+
metadataState.set(null);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
clearScrollMetadataAxis(metadataState, scrollDirection);
|
|
142
|
+
};
|
|
143
|
+
}, [
|
|
144
|
+
routeKey,
|
|
145
|
+
scrollDirection,
|
|
146
|
+
isFirstMetadataWriterInTree,
|
|
147
|
+
metadataState,
|
|
148
|
+
metadataWriterId,
|
|
149
|
+
]);
|
|
150
|
+
|
|
64
151
|
const ownerClosingValues = useMemo(
|
|
65
152
|
() =>
|
|
66
153
|
ownerRouteKeys.map((routeKey) =>
|
|
@@ -92,6 +179,12 @@ export const useScrollGestureCoordination = (
|
|
|
92
179
|
isTouched: true,
|
|
93
180
|
});
|
|
94
181
|
}
|
|
182
|
+
|
|
183
|
+
if (writesMetadata && metadataState) {
|
|
184
|
+
modifyScrollMetadataAxisState(metadataState, scrollDirection, {
|
|
185
|
+
isTouched: true,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
95
188
|
};
|
|
96
189
|
|
|
97
190
|
const clearIsTouched = () => {
|
|
@@ -101,6 +194,12 @@ export const useScrollGestureCoordination = (
|
|
|
101
194
|
isTouched: false,
|
|
102
195
|
});
|
|
103
196
|
}
|
|
197
|
+
|
|
198
|
+
if (writesMetadata && metadataState) {
|
|
199
|
+
modifyScrollMetadataAxisState(metadataState, scrollDirection, {
|
|
200
|
+
isTouched: false,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
104
203
|
};
|
|
105
204
|
|
|
106
205
|
let gesture = Gesture.Native()
|
|
@@ -121,12 +220,17 @@ export const useScrollGestureCoordination = (
|
|
|
121
220
|
}
|
|
122
221
|
|
|
123
222
|
return gesture;
|
|
124
|
-
}, [
|
|
223
|
+
}, [
|
|
224
|
+
panGestures,
|
|
225
|
+
pinchGestures,
|
|
226
|
+
scrollStates,
|
|
227
|
+
scrollDirection,
|
|
228
|
+
writesMetadata,
|
|
229
|
+
metadataState,
|
|
230
|
+
]);
|
|
125
231
|
|
|
126
232
|
const scrollHandler = useAnimatedScrollHandler({
|
|
127
233
|
onScroll: (event) => {
|
|
128
|
-
if (scrollStates.length === 0) return;
|
|
129
|
-
|
|
130
234
|
const offset =
|
|
131
235
|
scrollDirection === "horizontal"
|
|
132
236
|
? event.contentOffset.x
|
|
@@ -135,7 +239,14 @@ export const useScrollGestureCoordination = (
|
|
|
135
239
|
for (const scrollState of scrollStates) {
|
|
136
240
|
modifyScrollGestureAxisState(scrollState, scrollDirection, {
|
|
137
241
|
offset,
|
|
138
|
-
isTouched: scrollState.get()?.isTouched ?? true,
|
|
242
|
+
isTouched: scrollState.get()?.[scrollDirection].isTouched ?? true,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (writesMetadata && metadataState) {
|
|
247
|
+
modifyScrollMetadataAxisState(metadataState, scrollDirection, {
|
|
248
|
+
offset,
|
|
249
|
+
isTouched: metadataState.get()?.[scrollDirection]?.isTouched ?? true,
|
|
139
250
|
});
|
|
140
251
|
}
|
|
141
252
|
},
|
|
@@ -144,7 +255,6 @@ export const useScrollGestureCoordination = (
|
|
|
144
255
|
const onContentSizeChange = useStableCallback(
|
|
145
256
|
(width: number, height: number) => {
|
|
146
257
|
props.onContentSizeChange?.(width, height);
|
|
147
|
-
if (scrollStates.length === 0) return;
|
|
148
258
|
|
|
149
259
|
const contentSize = scrollDirection === "horizontal" ? width : height;
|
|
150
260
|
|
|
@@ -153,12 +263,17 @@ export const useScrollGestureCoordination = (
|
|
|
153
263
|
contentSize,
|
|
154
264
|
});
|
|
155
265
|
}
|
|
266
|
+
|
|
267
|
+
if (writesMetadata && metadataState) {
|
|
268
|
+
modifyScrollMetadataAxisState(metadataState, scrollDirection, {
|
|
269
|
+
contentSize,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
156
272
|
},
|
|
157
273
|
);
|
|
158
274
|
|
|
159
275
|
const onLayout = useStableCallback((event: LayoutChangeEvent) => {
|
|
160
276
|
props.onLayout?.(event);
|
|
161
|
-
if (scrollStates.length === 0) return;
|
|
162
277
|
|
|
163
278
|
const { width, height } = event.nativeEvent.layout;
|
|
164
279
|
const layoutSize = scrollDirection === "horizontal" ? width : height;
|
|
@@ -168,6 +283,12 @@ export const useScrollGestureCoordination = (
|
|
|
168
283
|
layoutSize,
|
|
169
284
|
});
|
|
170
285
|
}
|
|
286
|
+
|
|
287
|
+
if (writesMetadata && metadataState) {
|
|
288
|
+
modifyScrollMetadataAxisState(metadataState, scrollDirection, {
|
|
289
|
+
layoutSize,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
171
292
|
});
|
|
172
293
|
|
|
173
294
|
return {
|
|
@@ -176,5 +297,6 @@ export const useScrollGestureCoordination = (
|
|
|
176
297
|
onContentSizeChange,
|
|
177
298
|
onLayout,
|
|
178
299
|
nativeGesture,
|
|
300
|
+
metadataOwnerProviderValue,
|
|
179
301
|
};
|
|
180
302
|
};
|
|
@@ -10,7 +10,6 @@ interface CalculateProgressProps {
|
|
|
10
10
|
event: PanGestureEvent;
|
|
11
11
|
dimensions: { width: number; height: number };
|
|
12
12
|
directions: GestureDirections;
|
|
13
|
-
gestureReleaseVelocityScale?: number;
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
type GestureAxisCandidate = {
|
|
@@ -32,25 +31,28 @@ export const toProgressVelocity = (
|
|
|
32
31
|
};
|
|
33
32
|
|
|
34
33
|
/**
|
|
35
|
-
* Converts normalized
|
|
34
|
+
* Converts normalized gesture velocity into a 0-1 scalar for interpolators.
|
|
36
35
|
*
|
|
37
36
|
* `1` means the velocity reached or exceeded the library's full-velocity
|
|
38
37
|
* threshold, not a physical maximum for the device.
|
|
39
38
|
*/
|
|
39
|
+
export const resolveGestureVelocityMagnitude = (velocity: number) => {
|
|
40
|
+
"worklet";
|
|
41
|
+
|
|
42
|
+
return Math.min(
|
|
43
|
+
1,
|
|
44
|
+
Math.abs(velocity) / FULL_GESTURE_VELOCITY_PROGRESS_PER_SECOND,
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
40
48
|
export const resolveGestureVelocity = (
|
|
41
49
|
velocityNormX: number,
|
|
42
50
|
velocityNormY: number,
|
|
43
51
|
) => {
|
|
44
52
|
"worklet";
|
|
45
53
|
|
|
46
|
-
|
|
47
|
-
Math.abs(velocityNormX),
|
|
48
|
-
Math.abs(velocityNormY),
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
return Math.min(
|
|
52
|
-
1,
|
|
53
|
-
dominantVelocity / FULL_GESTURE_VELOCITY_PROGRESS_PER_SECOND,
|
|
54
|
+
return resolveGestureVelocityMagnitude(
|
|
55
|
+
Math.max(Math.abs(velocityNormX), Math.abs(velocityNormY)),
|
|
54
56
|
);
|
|
55
57
|
};
|
|
56
58
|
|
|
@@ -85,7 +87,6 @@ const getPanAxisCandidate = (
|
|
|
85
87
|
translationTowardDismiss: number,
|
|
86
88
|
velocityTowardDismiss: number,
|
|
87
89
|
screenSize: number,
|
|
88
|
-
gestureReleaseVelocityScale?: number,
|
|
89
90
|
): GestureAxisCandidate | null => {
|
|
90
91
|
"worklet";
|
|
91
92
|
if (!isEnabled || translationTowardDismiss <= 0) {
|
|
@@ -97,7 +98,6 @@ const getPanAxisCandidate = (
|
|
|
97
98
|
velocityContribution: getPanReleaseHandoffVelocity(
|
|
98
99
|
velocityTowardDismiss,
|
|
99
100
|
screenSize,
|
|
100
|
-
gestureReleaseVelocityScale,
|
|
101
101
|
),
|
|
102
102
|
};
|
|
103
103
|
};
|
|
@@ -116,11 +116,7 @@ const collectPanAxisCandidates = ({
|
|
|
116
116
|
event,
|
|
117
117
|
dimensions,
|
|
118
118
|
directions,
|
|
119
|
-
|
|
120
|
-
}: Pick<
|
|
121
|
-
CalculateProgressProps,
|
|
122
|
-
"event" | "dimensions" | "directions" | "gestureReleaseVelocityScale"
|
|
123
|
-
>) => {
|
|
119
|
+
}: Pick<CalculateProgressProps, "event" | "dimensions" | "directions">) => {
|
|
124
120
|
"worklet";
|
|
125
121
|
const candidates: GestureAxisCandidate[] = [];
|
|
126
122
|
|
|
@@ -131,7 +127,6 @@ const collectPanAxisCandidates = ({
|
|
|
131
127
|
event.translationX,
|
|
132
128
|
event.velocityX,
|
|
133
129
|
dimensions.width,
|
|
134
|
-
gestureReleaseVelocityScale,
|
|
135
130
|
),
|
|
136
131
|
);
|
|
137
132
|
pushPanAxisCandidate(
|
|
@@ -141,7 +136,6 @@ const collectPanAxisCandidates = ({
|
|
|
141
136
|
-event.translationX,
|
|
142
137
|
-event.velocityX,
|
|
143
138
|
dimensions.width,
|
|
144
|
-
gestureReleaseVelocityScale,
|
|
145
139
|
),
|
|
146
140
|
);
|
|
147
141
|
pushPanAxisCandidate(
|
|
@@ -151,7 +145,6 @@ const collectPanAxisCandidates = ({
|
|
|
151
145
|
event.translationY,
|
|
152
146
|
event.velocityY,
|
|
153
147
|
dimensions.height,
|
|
154
|
-
gestureReleaseVelocityScale,
|
|
155
148
|
),
|
|
156
149
|
);
|
|
157
150
|
pushPanAxisCandidate(
|
|
@@ -161,7 +154,6 @@ const collectPanAxisCandidates = ({
|
|
|
161
154
|
-event.translationY,
|
|
162
155
|
-event.velocityY,
|
|
163
156
|
dimensions.height,
|
|
164
|
-
gestureReleaseVelocityScale,
|
|
165
157
|
),
|
|
166
158
|
);
|
|
167
159
|
|
|
@@ -190,21 +182,15 @@ const getDominantPanCandidateVelocity = (
|
|
|
190
182
|
const getFallbackPanReleaseVelocityMagnitude = ({
|
|
191
183
|
event,
|
|
192
184
|
dimensions,
|
|
193
|
-
|
|
194
|
-
}: Pick<
|
|
195
|
-
CalculateProgressProps,
|
|
196
|
-
"event" | "dimensions" | "gestureReleaseVelocityScale"
|
|
197
|
-
>) => {
|
|
185
|
+
}: Pick<CalculateProgressProps, "event" | "dimensions">) => {
|
|
198
186
|
"worklet";
|
|
199
187
|
const normalizedVelocityX = getPanReleaseHandoffVelocity(
|
|
200
188
|
event.velocityX,
|
|
201
189
|
dimensions.width,
|
|
202
|
-
gestureReleaseVelocityScale,
|
|
203
190
|
);
|
|
204
191
|
const normalizedVelocityY = getPanReleaseHandoffVelocity(
|
|
205
192
|
event.velocityY,
|
|
206
193
|
dimensions.height,
|
|
207
|
-
gestureReleaseVelocityScale,
|
|
208
194
|
);
|
|
209
195
|
|
|
210
196
|
return Math.max(Math.abs(normalizedVelocityX), Math.abs(normalizedVelocityY));
|
|
@@ -232,11 +218,10 @@ export const getPanReleaseProgressVelocity = ({
|
|
|
232
218
|
event,
|
|
233
219
|
dimensions,
|
|
234
220
|
directions,
|
|
235
|
-
gestureReleaseVelocityScale,
|
|
236
221
|
}: CalculateProgressProps) => {
|
|
237
222
|
"worklet";
|
|
238
223
|
|
|
239
|
-
const currentProgress = animations.
|
|
224
|
+
const currentProgress = animations.transitionProgress.get();
|
|
240
225
|
const targetProgress = shouldDismiss ? 0 : 1;
|
|
241
226
|
const progressDelta = targetProgress - currentProgress;
|
|
242
227
|
|
|
@@ -247,7 +232,6 @@ export const getPanReleaseProgressVelocity = ({
|
|
|
247
232
|
event,
|
|
248
233
|
dimensions,
|
|
249
234
|
directions,
|
|
250
|
-
gestureReleaseVelocityScale,
|
|
251
235
|
}),
|
|
252
236
|
);
|
|
253
237
|
const progressVelocityMagnitude =
|
|
@@ -255,7 +239,6 @@ export const getPanReleaseProgressVelocity = ({
|
|
|
255
239
|
getFallbackPanReleaseVelocityMagnitude({
|
|
256
240
|
event,
|
|
257
241
|
dimensions,
|
|
258
|
-
gestureReleaseVelocityScale,
|
|
259
242
|
});
|
|
260
243
|
|
|
261
244
|
return progressDirection * progressVelocityMagnitude;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_GESTURE_ACTIVATION_AREA,
|
|
3
3
|
DEFAULT_GESTURE_DIRECTION,
|
|
4
|
-
DEFAULT_GESTURE_PROGRESS_MODE,
|
|
5
4
|
DEFAULT_GESTURE_RELEASE_VELOCITY_SCALE,
|
|
6
5
|
DEFAULT_GESTURE_SENSITIVITY,
|
|
7
6
|
DEFAULT_GESTURE_SNAP_LOCKED,
|
|
@@ -15,7 +14,6 @@ import type {
|
|
|
15
14
|
GestureDirectionActivationArea,
|
|
16
15
|
GestureDirectionEntry,
|
|
17
16
|
GestureDirectionOption,
|
|
18
|
-
GestureProgressMode,
|
|
19
17
|
ResolvedGestureActivationArea,
|
|
20
18
|
} from "../../../../types/gesture.types";
|
|
21
19
|
import type {
|
|
@@ -24,7 +22,6 @@ import type {
|
|
|
24
22
|
SheetScrollGestureBehavior,
|
|
25
23
|
SnapPoint,
|
|
26
24
|
} from "../../../../types/screen.types";
|
|
27
|
-
import { resolveGestureProgressMode } from "../../../../utils/gesture-progress-mode";
|
|
28
25
|
import { computeClaimedDirections } from "../ownership/compute-claimed-directions";
|
|
29
26
|
import { resolveOwnership } from "../ownership/resolve-ownership";
|
|
30
27
|
import type {
|
|
@@ -49,9 +46,7 @@ export type GesturePolicyOptions = {
|
|
|
49
46
|
expandViaScrollView?: boolean;
|
|
50
47
|
gestureActivationArea?: GestureActivationArea;
|
|
51
48
|
gestureDirection?: GestureDirectionOption;
|
|
52
|
-
gestureDrivesProgress?: boolean;
|
|
53
49
|
gestureEnabled?: boolean;
|
|
54
|
-
gestureProgressMode?: GestureProgressMode;
|
|
55
50
|
gestureTracking?: GestureTracking;
|
|
56
51
|
gestureReleaseVelocityScale?: number;
|
|
57
52
|
gestureResponseDistance?: number;
|
|
@@ -155,19 +150,9 @@ const resolveGestureActivationArea = (
|
|
|
155
150
|
);
|
|
156
151
|
};
|
|
157
152
|
|
|
158
|
-
function resolveGestureProgressModePolicy(options: GesturePolicyOptions) {
|
|
159
|
-
"worklet";
|
|
160
|
-
return resolveGestureProgressMode({
|
|
161
|
-
gestureProgressMode: options.gestureProgressMode,
|
|
162
|
-
gestureDrivesProgress: options.gestureDrivesProgress,
|
|
163
|
-
fallback: DEFAULT_GESTURE_PROGRESS_MODE,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
|
|
167
153
|
const resolveCommonGesturePolicy = (options: GesturePolicyOptions) => {
|
|
168
154
|
"worklet";
|
|
169
155
|
return {
|
|
170
|
-
gestureProgressMode: resolveGestureProgressModePolicy(options),
|
|
171
156
|
gestureSensitivity:
|
|
172
157
|
options.gestureSensitivity ?? DEFAULT_GESTURE_SENSITIVITY,
|
|
173
158
|
gestureSnapVelocityImpact:
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { SharedValue } from "react-native-reanimated";
|
|
2
|
-
import { FALSE } from "../../../../constants";
|
|
3
|
-
import type { GestureStoreMap } from "../../../../stores/gesture.store";
|
|
4
2
|
import type { AnimationConfig } from "../../../../types/animation.types";
|
|
5
3
|
import {
|
|
6
4
|
animate,
|
|
@@ -10,12 +8,18 @@ import {
|
|
|
10
8
|
|
|
11
9
|
type ResetSpringSpec = SpringAnimationConfig & { velocity?: number };
|
|
12
10
|
|
|
11
|
+
type AnimateManyJob = {
|
|
12
|
+
value: SharedValue<number>;
|
|
13
|
+
toValue: number;
|
|
14
|
+
velocity?: number;
|
|
15
|
+
};
|
|
16
|
+
|
|
13
17
|
const isResetSpringSpec = (spec?: AnimationConfig): spec is ResetSpringSpec => {
|
|
14
18
|
"worklet";
|
|
15
19
|
return isSpringAnimationConfig(spec);
|
|
16
20
|
};
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
const getGestureResetSpec = (
|
|
19
23
|
spec?: AnimationConfig,
|
|
20
24
|
velocity?: number,
|
|
21
25
|
): AnimationConfig | undefined => {
|
|
@@ -34,7 +38,7 @@ export const getGestureResetSpec = (
|
|
|
34
38
|
return { ...resetSpec, velocity };
|
|
35
39
|
};
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
const animateResetValue = (
|
|
38
42
|
value: SharedValue<number>,
|
|
39
43
|
toValue: number,
|
|
40
44
|
config: AnimationConfig | undefined,
|
|
@@ -51,16 +55,34 @@ export const animateResetValue = (
|
|
|
51
55
|
);
|
|
52
56
|
};
|
|
53
57
|
|
|
54
|
-
export const
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
export const animateMany = (
|
|
59
|
+
jobs: AnimateManyJob[],
|
|
60
|
+
spec: AnimationConfig | undefined,
|
|
61
|
+
onFinished: () => void,
|
|
57
62
|
) => {
|
|
58
63
|
"worklet";
|
|
59
|
-
|
|
64
|
+
let pendingJobs = jobs.length;
|
|
65
|
+
|
|
66
|
+
if (pendingJobs === 0) {
|
|
67
|
+
onFinished();
|
|
60
68
|
return;
|
|
61
69
|
}
|
|
62
70
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
71
|
+
const finishJob = () => {
|
|
72
|
+
"worklet";
|
|
73
|
+
pendingJobs -= 1;
|
|
74
|
+
|
|
75
|
+
if (pendingJobs === 0) {
|
|
76
|
+
onFinished();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
for (const job of jobs) {
|
|
81
|
+
animateResetValue(
|
|
82
|
+
job.value,
|
|
83
|
+
job.toValue,
|
|
84
|
+
getGestureResetSpec(spec, job.velocity),
|
|
85
|
+
finishJob,
|
|
86
|
+
);
|
|
87
|
+
}
|
|
66
88
|
};
|
|
@@ -232,19 +232,20 @@ export const primeRuntimeSnapPoint = (
|
|
|
232
232
|
"worklet";
|
|
233
233
|
const {
|
|
234
234
|
policy,
|
|
235
|
-
stores: { animations },
|
|
236
|
-
lockedSnapPoint,
|
|
235
|
+
stores: { animations, gestures },
|
|
237
236
|
} = runtime;
|
|
238
237
|
|
|
239
|
-
const { resolvedSnapPoints
|
|
240
|
-
resolveRuntimeGestureSnapPoints(runtime);
|
|
238
|
+
const { resolvedSnapPoints } = resolveRuntimeGestureSnapPoints(runtime);
|
|
241
239
|
|
|
242
240
|
if (policy.gestureSnapLocked) {
|
|
243
|
-
lockedSnapPoint.set(
|
|
244
|
-
findNearestSnapPoint(
|
|
241
|
+
gestures.internal.lockedSnapPoint.set(
|
|
242
|
+
findNearestSnapPoint(
|
|
243
|
+
animations.transitionProgress.get(),
|
|
244
|
+
resolvedSnapPoints,
|
|
245
|
+
),
|
|
245
246
|
);
|
|
246
247
|
return;
|
|
247
248
|
}
|
|
248
249
|
|
|
249
|
-
lockedSnapPoint.set(
|
|
250
|
+
gestures.internal.lockedSnapPoint.set(null);
|
|
250
251
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { GestureStoreMap } from "../../../../stores/gesture.store";
|
|
2
|
+
|
|
3
|
+
type SnapshotGestureHandoffOptions = {
|
|
4
|
+
velocity?: number;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export const snapshotGestureHandoff = (
|
|
8
|
+
gestures: GestureStoreMap,
|
|
9
|
+
options?: SnapshotGestureHandoffOptions,
|
|
10
|
+
) => {
|
|
11
|
+
"worklet";
|
|
12
|
+
const snapshot = gestures.internal.snapshot;
|
|
13
|
+
|
|
14
|
+
snapshot.x.set(gestures.x.get());
|
|
15
|
+
snapshot.y.set(gestures.y.get());
|
|
16
|
+
snapshot.normX.set(gestures.normX.get());
|
|
17
|
+
snapshot.normY.set(gestures.normY.get());
|
|
18
|
+
snapshot.velocity.set(options?.velocity ?? gestures.velocity.get());
|
|
19
|
+
snapshot.scale.set(gestures.scale.get());
|
|
20
|
+
snapshot.normScale.set(gestures.normScale.get());
|
|
21
|
+
snapshot.focalX.set(gestures.focalX.get());
|
|
22
|
+
snapshot.focalY.set(gestures.focalY.get());
|
|
23
|
+
snapshot.rotation.set(gestures.rotation.get());
|
|
24
|
+
snapshot.raw.x.set(gestures.raw.x.get());
|
|
25
|
+
snapshot.raw.y.set(gestures.raw.y.get());
|
|
26
|
+
snapshot.raw.normX.set(gestures.raw.normX.get());
|
|
27
|
+
snapshot.raw.normY.set(gestures.raw.normY.get());
|
|
28
|
+
snapshot.raw.scale.set(gestures.raw.scale.get());
|
|
29
|
+
snapshot.raw.normScale.set(gestures.raw.normScale.get());
|
|
30
|
+
snapshot.raw.rotation.set(gestures.raw.rotation.get());
|
|
31
|
+
snapshot.active.set(gestures.active.get());
|
|
32
|
+
snapshot.direction.set(gestures.direction.get());
|
|
33
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { GestureStoreMap } from "../../../../stores/gesture.store";
|
|
2
|
+
|
|
3
|
+
export const clearRawPanValues = (gestures: GestureStoreMap) => {
|
|
4
|
+
"worklet";
|
|
5
|
+
gestures.raw.x.set(0);
|
|
6
|
+
gestures.raw.y.set(0);
|
|
7
|
+
gestures.raw.normX.set(0);
|
|
8
|
+
gestures.raw.normY.set(0);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const clearPanProgressDeltaValues = (gestures: GestureStoreMap) => {
|
|
12
|
+
"worklet";
|
|
13
|
+
gestures.internal.progressDeltaX.set(0);
|
|
14
|
+
gestures.internal.progressDeltaY.set(0);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const clearPanProgressValues = (gestures: GestureStoreMap) => {
|
|
18
|
+
"worklet";
|
|
19
|
+
gestures.x.set(0);
|
|
20
|
+
gestures.y.set(0);
|
|
21
|
+
gestures.normX.set(0);
|
|
22
|
+
gestures.normY.set(0);
|
|
23
|
+
clearPanProgressDeltaValues(gestures);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const clearPanTrackingValues = (gestures: GestureStoreMap) => {
|
|
27
|
+
"worklet";
|
|
28
|
+
clearPanProgressValues(gestures);
|
|
29
|
+
clearRawPanValues(gestures);
|
|
30
|
+
gestures.velocity.set(0);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const clearFocalPoint = (gestures: GestureStoreMap) => {
|
|
34
|
+
"worklet";
|
|
35
|
+
gestures.focalX.set(0);
|
|
36
|
+
gestures.focalY.set(0);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const clearRawTransformValues = (gestures: GestureStoreMap) => {
|
|
40
|
+
"worklet";
|
|
41
|
+
gestures.raw.scale.set(1);
|
|
42
|
+
gestures.raw.normScale.set(0);
|
|
43
|
+
gestures.raw.rotation.set(0);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export const clearTransformTrackingValues = (gestures: GestureStoreMap) => {
|
|
47
|
+
"worklet";
|
|
48
|
+
gestures.scale.set(1);
|
|
49
|
+
gestures.normScale.set(0);
|
|
50
|
+
gestures.rotation.set(0);
|
|
51
|
+
clearRawTransformValues(gestures);
|
|
52
|
+
};
|