react-native-screen-transitions 3.8.0-beta.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-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/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 +29 -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 +2 -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 +6 -7
- 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 +1 -1
- 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/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/gestures/types.js.map +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/types/gesture.types.js +6 -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/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-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/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 +30 -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 +2 -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 +6 -7
- 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 +1 -1
- 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/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/gestures/types.js.map +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/types/animation.types.js.map +1 -1
- package/lib/module/shared/types/gesture.types.js +7 -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/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/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 +2 -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 +2 -2
- 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/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/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/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 +47 -13
- 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 +25 -8
- package/lib/typescript/shared/types/screen.types.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-refresh-boundary.ts +4 -1
- 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 +2 -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 +72 -8
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +2 -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 +4 -4
- package/src/shared/providers/screen/gestures/gestures.provider.tsx +7 -9
- 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 +1 -1
- 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/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 +4 -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/types/animation.types.ts +9 -0
- package/src/shared/types/bounds.types.ts +12 -8
- package/src/shared/types/gesture.types.ts +48 -14
- package/src/shared/types/index.ts +2 -0
- package/src/shared/types/screen.types.ts +25 -8
- package/src/shared/utils/animation/animate-to-progress.ts +3 -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
|
@@ -11,7 +11,7 @@ import { useBuildPinchGesture } from "./pinch/use-build-pinch-gesture";
|
|
|
11
11
|
import { useBuildRotationGesture } from "./rotation/use-build-rotation-gesture";
|
|
12
12
|
import {
|
|
13
13
|
type DirectionClaimMap,
|
|
14
|
-
type
|
|
14
|
+
type GestureCompositionOwner,
|
|
15
15
|
type GestureContextType,
|
|
16
16
|
NO_DIRECTION_CLAIMS,
|
|
17
17
|
} from "./types";
|
|
@@ -38,27 +38,25 @@ export const {
|
|
|
38
38
|
const childDirectionClaims =
|
|
39
39
|
useSharedValue<DirectionClaimMap>(NO_DIRECTION_CLAIMS);
|
|
40
40
|
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
const gestureCompositionActivation =
|
|
45
|
-
useSharedValue<GestureCompositionActivation>(null);
|
|
41
|
+
// The first gesture to activate owns navigation release. Other gestures may
|
|
42
|
+
// still join as companion trackers during the same simultaneous composition.
|
|
43
|
+
const gestureCompositionOwner = useSharedValue<GestureCompositionOwner>(null);
|
|
46
44
|
|
|
47
45
|
const panGesture = useBuildPanGesture({
|
|
48
46
|
scrollState,
|
|
49
47
|
gestureConfig,
|
|
50
48
|
childDirectionClaims,
|
|
51
|
-
|
|
49
|
+
gestureCompositionOwner,
|
|
52
50
|
});
|
|
53
51
|
|
|
54
52
|
const pinchGesture = useBuildPinchGesture({
|
|
55
53
|
gestureConfig,
|
|
56
|
-
|
|
54
|
+
gestureCompositionOwner,
|
|
57
55
|
});
|
|
58
56
|
|
|
59
57
|
const rotationGesture = useBuildRotationGesture({
|
|
60
58
|
gestureConfig,
|
|
61
|
-
|
|
59
|
+
gestureCompositionOwner,
|
|
62
60
|
});
|
|
63
61
|
|
|
64
62
|
const detectorGesture = useMemo(
|
|
@@ -15,8 +15,7 @@ export function useStableRuntimeConfig<TPolicy extends GesturePolicy>(
|
|
|
15
15
|
runtimeConfigInput: RuntimeConfigInput<TPolicy>,
|
|
16
16
|
): SharedValue<GestureRuntime<TPolicy>> {
|
|
17
17
|
const { currentScreenKey } = useDescriptorDerivations();
|
|
18
|
-
const { participation, policy
|
|
19
|
-
runtimeConfigInput;
|
|
18
|
+
const { participation, policy } = runtimeConfigInput;
|
|
20
19
|
|
|
21
20
|
const stores = useMemo(() => {
|
|
22
21
|
return {
|
|
@@ -31,10 +30,8 @@ export function useStableRuntimeConfig<TPolicy extends GesturePolicy>(
|
|
|
31
30
|
participation,
|
|
32
31
|
policy,
|
|
33
32
|
stores,
|
|
34
|
-
gestureProgressBaseline,
|
|
35
|
-
lockedSnapPoint,
|
|
36
33
|
};
|
|
37
|
-
}, [participation, policy, stores
|
|
34
|
+
}, [participation, policy, stores]);
|
|
38
35
|
const stableRuntimeConfig = useSharedValue(runtimeConfig);
|
|
39
36
|
|
|
40
37
|
useLayoutEffect(() => {
|
|
@@ -246,7 +246,7 @@ const resolveSnapScrollExpansionDecision = (
|
|
|
246
246
|
});
|
|
247
247
|
|
|
248
248
|
const canExpandMore =
|
|
249
|
-
animations.
|
|
249
|
+
animations.transitionProgress.get() < resolvedMaxSnapPoint - EPSILON &&
|
|
250
250
|
system.targetProgress.get() < resolvedMaxSnapPoint - EPSILON;
|
|
251
251
|
|
|
252
252
|
if (canExpandMore) {
|
|
@@ -11,7 +11,7 @@ import type { ScreenOptionsContextValue } from "../../../options";
|
|
|
11
11
|
import { resolvePanRuntime } from "../../shared/runtime";
|
|
12
12
|
import type {
|
|
13
13
|
DirectionClaimMap,
|
|
14
|
-
|
|
14
|
+
GestureCompositionOwner,
|
|
15
15
|
GestureDimensions,
|
|
16
16
|
PanGestureRuntime,
|
|
17
17
|
ScrollGestureState,
|
|
@@ -24,7 +24,7 @@ interface UsePanActivationProps {
|
|
|
24
24
|
runtime: SharedValue<PanGestureRuntime>;
|
|
25
25
|
screenOptions: ScreenOptionsContextValue;
|
|
26
26
|
dimensions: GestureDimensions;
|
|
27
|
-
|
|
27
|
+
gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export const usePanActivation = ({
|
|
@@ -33,7 +33,7 @@ export const usePanActivation = ({
|
|
|
33
33
|
runtime,
|
|
34
34
|
screenOptions,
|
|
35
35
|
dimensions,
|
|
36
|
-
|
|
36
|
+
gestureCompositionOwner,
|
|
37
37
|
}: UsePanActivationProps) => {
|
|
38
38
|
const { currentScreenKey, parentScreenKey } = useDescriptorDerivations();
|
|
39
39
|
|
|
@@ -82,10 +82,12 @@ export const usePanActivation = ({
|
|
|
82
82
|
screenOptions.get(),
|
|
83
83
|
);
|
|
84
84
|
|
|
85
|
+
// If another gesture owns this composition, let pan join as a
|
|
86
|
+
// companion tracker instead of running normal pan activation gates.
|
|
85
87
|
if (
|
|
86
|
-
|
|
88
|
+
gestureCompositionOwner.get() !== null &&
|
|
87
89
|
resolvedRuntime.participation.canTrackGesture &&
|
|
88
|
-
|
|
90
|
+
resolvedRuntime.policy.enabled
|
|
89
91
|
) {
|
|
90
92
|
stateManager.activate();
|
|
91
93
|
return;
|
|
@@ -122,7 +124,7 @@ export const usePanActivation = ({
|
|
|
122
124
|
gestures.direction.set(decision.direction);
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
|
|
127
|
+
gestureCompositionOwner.set("pan");
|
|
126
128
|
stateManager.activate();
|
|
127
129
|
},
|
|
128
130
|
[
|
|
@@ -135,7 +137,7 @@ export const usePanActivation = ({
|
|
|
135
137
|
runtime,
|
|
136
138
|
screenOptions,
|
|
137
139
|
scrollState,
|
|
138
|
-
|
|
140
|
+
gestureCompositionOwner,
|
|
139
141
|
],
|
|
140
142
|
);
|
|
141
143
|
|
|
@@ -6,8 +6,14 @@ import {
|
|
|
6
6
|
normalizeGestureTranslation,
|
|
7
7
|
resolveGestureVelocity,
|
|
8
8
|
} from "../../shared/physics";
|
|
9
|
+
import { snapshotGestureHandoff } from "../../shared/snapshot";
|
|
10
|
+
import {
|
|
11
|
+
clearFocalPoint,
|
|
12
|
+
clearPanTrackingValues,
|
|
13
|
+
clearTransformTrackingValues,
|
|
14
|
+
} from "../../shared/values";
|
|
9
15
|
import type {
|
|
10
|
-
|
|
16
|
+
GestureCompositionOwner,
|
|
11
17
|
GestureDimensions,
|
|
12
18
|
PanGestureEvent,
|
|
13
19
|
PanGestureRuntime,
|
|
@@ -21,7 +27,6 @@ export const startPanBase = (runtime: PanGestureRuntime) => {
|
|
|
21
27
|
"worklet";
|
|
22
28
|
const {
|
|
23
29
|
stores: { gestures, animations },
|
|
24
|
-
gestureProgressBaseline,
|
|
25
30
|
} = runtime;
|
|
26
31
|
|
|
27
32
|
const wasSettling = gestures.settling.get();
|
|
@@ -38,24 +43,10 @@ export const startPanBase = (runtime: PanGestureRuntime) => {
|
|
|
38
43
|
gestures.dragging.set(TRUE);
|
|
39
44
|
gestures.dismissing.set(0);
|
|
40
45
|
gestures.settling.set(0);
|
|
41
|
-
gestures
|
|
42
|
-
gestures
|
|
43
|
-
gestures
|
|
44
|
-
gestures.
|
|
45
|
-
gestures.velocity.set(0);
|
|
46
|
-
gestures.scale.set(1);
|
|
47
|
-
gestures.normScale.set(0);
|
|
48
|
-
gestures.focalX.set(0);
|
|
49
|
-
gestures.focalY.set(0);
|
|
50
|
-
gestures.rotation.set(0);
|
|
51
|
-
gestures.raw.x.set(0);
|
|
52
|
-
gestures.raw.y.set(0);
|
|
53
|
-
gestures.raw.normX.set(0);
|
|
54
|
-
gestures.raw.normY.set(0);
|
|
55
|
-
gestures.raw.scale.set(1);
|
|
56
|
-
gestures.raw.normScale.set(0);
|
|
57
|
-
gestures.raw.rotation.set(0);
|
|
58
|
-
gestureProgressBaseline.set(animations.progress.get());
|
|
46
|
+
clearPanTrackingValues(gestures);
|
|
47
|
+
clearTransformTrackingValues(gestures);
|
|
48
|
+
clearFocalPoint(gestures);
|
|
49
|
+
gestures.internal.progressBaseline.set(animations.transitionProgress.get());
|
|
59
50
|
};
|
|
60
51
|
|
|
61
52
|
export const trackPanGesture = (
|
|
@@ -87,6 +78,8 @@ export const trackPanGesture = (
|
|
|
87
78
|
gestures.y.set(y);
|
|
88
79
|
gestures.normX.set(normX);
|
|
89
80
|
gestures.normY.set(normY);
|
|
81
|
+
gestures.internal.progressDeltaX.set(normX);
|
|
82
|
+
gestures.internal.progressDeltaY.set(normY);
|
|
90
83
|
gestures.velocity.set(velocity);
|
|
91
84
|
gestures.raw.x.set(rawX);
|
|
92
85
|
gestures.raw.y.set(rawY);
|
|
@@ -109,7 +102,7 @@ export const finalizePanRelease = (
|
|
|
109
102
|
dimensions: GestureDimensions,
|
|
110
103
|
rawEvent: PanGestureEvent,
|
|
111
104
|
requestDismiss?: () => void,
|
|
112
|
-
|
|
105
|
+
gestureCompositionOwner?: SharedValue<GestureCompositionOwner>,
|
|
113
106
|
) => {
|
|
114
107
|
"worklet";
|
|
115
108
|
const {
|
|
@@ -118,18 +111,15 @@ export const finalizePanRelease = (
|
|
|
118
111
|
} = runtime;
|
|
119
112
|
|
|
120
113
|
const canDriveRelease =
|
|
121
|
-
!
|
|
122
|
-
gestureCompositionActivation.get() === "pan";
|
|
114
|
+
!gestureCompositionOwner || gestureCompositionOwner.get() === "pan";
|
|
123
115
|
|
|
124
116
|
const plan = buildPanReleasePlan(
|
|
125
117
|
canDriveRelease
|
|
126
118
|
? release
|
|
127
119
|
: {
|
|
128
|
-
target: animations.
|
|
120
|
+
target: animations.transitionProgress.get(),
|
|
129
121
|
shouldDismiss: false,
|
|
130
122
|
initialVelocity: 0,
|
|
131
|
-
resetNormalizedValuesImmediately:
|
|
132
|
-
policy.gestureProgressMode === "progress-driven",
|
|
133
123
|
transitionSpec: undefined,
|
|
134
124
|
resetSpec: policy.transitionSpec?.open,
|
|
135
125
|
},
|
|
@@ -139,22 +129,19 @@ export const finalizePanRelease = (
|
|
|
139
129
|
);
|
|
140
130
|
|
|
141
131
|
if (typeof plan.commitProgress === "number") {
|
|
142
|
-
animations.
|
|
132
|
+
animations.transitionProgress.set(plan.commitProgress);
|
|
143
133
|
system.targetProgress.set(plan.commitProgress);
|
|
144
134
|
}
|
|
145
135
|
|
|
136
|
+
if (canDriveRelease && plan.shouldDismiss) {
|
|
137
|
+
snapshotGestureHandoff(gestures, {
|
|
138
|
+
velocity: plan.handoffVelocity,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
|
|
146
142
|
resetPanGestureValues({
|
|
147
|
-
|
|
143
|
+
plan,
|
|
148
144
|
gestures,
|
|
149
|
-
shouldDismiss: plan.shouldDismiss,
|
|
150
|
-
velocityX: plan.resetVelocityX,
|
|
151
|
-
velocityY: plan.resetVelocityY,
|
|
152
|
-
velocityNormX: plan.resetVelocityNormX,
|
|
153
|
-
velocityNormY: plan.resetVelocityNormY,
|
|
154
|
-
releaseVelocity: plan.releaseVelocity,
|
|
155
|
-
resetNormalizedValues: plan.resetNormalizedValues,
|
|
156
|
-
resetNormalizedValuesImmediately: plan.resetNormalizedValuesImmediately,
|
|
157
|
-
preserveRawValues: plan.preserveRawValues,
|
|
158
145
|
updateLifecycle: canDriveRelease,
|
|
159
146
|
});
|
|
160
147
|
|
|
@@ -163,7 +150,7 @@ export const finalizePanRelease = (
|
|
|
163
150
|
}
|
|
164
151
|
|
|
165
152
|
const progressAlreadyAtTarget =
|
|
166
|
-
Math.abs(animations.
|
|
153
|
+
Math.abs(animations.transitionProgress.get() - plan.target) <= EPSILON;
|
|
167
154
|
|
|
168
155
|
if (!plan.shouldDismiss && progressAlreadyAtTarget) {
|
|
169
156
|
system.targetProgress.set(plan.target);
|
|
@@ -96,7 +96,7 @@ const getPanSnapReleaseProgress = ({
|
|
|
96
96
|
const axisDimension = isHorizontal ? dimensions.width : dimensions.height;
|
|
97
97
|
const axisProgress = axisTranslation / Math.max(1, axisDimension);
|
|
98
98
|
const progress =
|
|
99
|
-
runtime.
|
|
99
|
+
runtime.stores.gestures.internal.progressBaseline.get() +
|
|
100
100
|
activeAxis.config.progressSign * axisProgress;
|
|
101
101
|
|
|
102
102
|
return clamp(progress, minSnapPoint, maxSnapPoint);
|
|
@@ -109,7 +109,7 @@ const buildInactivePanSnapRelease = (
|
|
|
109
109
|
const { policy, stores } = runtime;
|
|
110
110
|
|
|
111
111
|
return {
|
|
112
|
-
target: stores.animations.
|
|
112
|
+
target: stores.animations.transitionProgress.get(),
|
|
113
113
|
shouldDismiss: false,
|
|
114
114
|
initialVelocity: 0,
|
|
115
115
|
transitionSpec: policy.transitionSpec,
|
|
@@ -152,7 +152,6 @@ export const resolvePanRelease = (
|
|
|
152
152
|
event,
|
|
153
153
|
dimensions,
|
|
154
154
|
directions: policy.panActivationDirections,
|
|
155
|
-
gestureReleaseVelocityScale: policy.gestureReleaseVelocityScale,
|
|
156
155
|
}),
|
|
157
156
|
transitionSpec: policy.transitionSpec,
|
|
158
157
|
resetSpec: shouldDismiss
|
|
@@ -167,7 +166,7 @@ export const resolveSnapPanRelease = (
|
|
|
167
166
|
dimensions: GestureDimensions,
|
|
168
167
|
): PanReleaseResult => {
|
|
169
168
|
"worklet";
|
|
170
|
-
const { participation, policy
|
|
169
|
+
const { participation, policy } = runtime;
|
|
171
170
|
const activeAxis = resolveActivePanSnapAxis(runtime);
|
|
172
171
|
|
|
173
172
|
if (!activeAxis) {
|
|
@@ -192,7 +191,10 @@ export const resolveSnapPanRelease = (
|
|
|
192
191
|
const result = determineSnapTarget({
|
|
193
192
|
currentProgress,
|
|
194
193
|
snapPoints: policy.gestureSnapLocked
|
|
195
|
-
? [
|
|
194
|
+
? [
|
|
195
|
+
runtime.stores.gestures.internal.lockedSnapPoint.get() ??
|
|
196
|
+
resolvedMaxSnapPoint,
|
|
197
|
+
]
|
|
196
198
|
: resolvedSnapPoints,
|
|
197
199
|
velocity: snapVelocity,
|
|
198
200
|
dimension: axisDimension,
|
|
@@ -210,14 +212,11 @@ export const resolveSnapPanRelease = (
|
|
|
210
212
|
handoffVelocity: getPanReleaseHandoffVelocity(
|
|
211
213
|
axisVelocity,
|
|
212
214
|
axisDimension,
|
|
213
|
-
policy.gestureReleaseVelocityScale,
|
|
214
215
|
),
|
|
215
216
|
target,
|
|
216
217
|
currentProgress,
|
|
217
218
|
}),
|
|
218
219
|
commitProgress: currentProgress,
|
|
219
|
-
resetNormalizedValuesImmediately:
|
|
220
|
-
policy.gestureProgressMode === "progress-driven",
|
|
221
220
|
transitionSpec: resolveGestureSnapTransitionSpec({
|
|
222
221
|
transitionSpec: policy.transitionSpec,
|
|
223
222
|
shouldDismiss,
|
|
@@ -238,40 +237,39 @@ export const buildPanReleasePlan = (
|
|
|
238
237
|
): PanReleasePlan => {
|
|
239
238
|
"worklet";
|
|
240
239
|
const { policy } = runtime;
|
|
241
|
-
const progressDriven = policy.gestureProgressMode === "progress-driven";
|
|
242
240
|
const releaseVelocityScale = Math.max(0, policy.gestureReleaseVelocityScale);
|
|
243
|
-
const
|
|
244
|
-
const resetVelocityFactor = resetUsesReleaseVelocity ? 1 : 0;
|
|
245
|
-
const resetVelocityScale = releaseVelocityScale * resetVelocityFactor;
|
|
241
|
+
const resetVelocityScale = releaseVelocityScale;
|
|
246
242
|
const resetVelocityX =
|
|
247
243
|
resetVelocityScale === 0 ? 0 : rawEvent.velocityX * resetVelocityScale;
|
|
248
244
|
const resetVelocityY =
|
|
249
245
|
resetVelocityScale === 0 ? 0 : rawEvent.velocityY * resetVelocityScale;
|
|
250
|
-
const
|
|
251
|
-
rawEvent.velocityX
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
246
|
+
const handoffVelocityNormX = getPanReleaseHandoffVelocity(
|
|
247
|
+
rawEvent.velocityX,
|
|
248
|
+
dimensions.width,
|
|
249
|
+
releaseVelocityScale,
|
|
250
|
+
);
|
|
251
|
+
const handoffVelocityNormY = getPanReleaseHandoffVelocity(
|
|
252
|
+
rawEvent.velocityY,
|
|
253
|
+
dimensions.height,
|
|
254
|
+
releaseVelocityScale,
|
|
255
|
+
);
|
|
256
|
+
const handoffVelocity = release.shouldDismiss
|
|
255
257
|
? resolvePanReleaseVelocity(
|
|
256
258
|
runtime,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
+
handoffVelocityNormX,
|
|
260
|
+
handoffVelocityNormY,
|
|
259
261
|
)
|
|
260
262
|
: 0;
|
|
261
263
|
|
|
262
264
|
return {
|
|
263
265
|
target: release.target,
|
|
264
266
|
shouldDismiss: release.shouldDismiss,
|
|
265
|
-
progressVelocity:
|
|
267
|
+
progressVelocity: release.initialVelocity,
|
|
266
268
|
resetVelocityX,
|
|
267
269
|
resetVelocityY,
|
|
268
270
|
resetVelocityNormX: resetVelocityX / Math.max(1, dimensions.width),
|
|
269
271
|
resetVelocityNormY: resetVelocityY / Math.max(1, dimensions.height),
|
|
270
|
-
|
|
271
|
-
resetNormalizedValues: !release.shouldDismiss || progressDriven,
|
|
272
|
-
resetNormalizedValuesImmediately:
|
|
273
|
-
release.resetNormalizedValuesImmediately === true,
|
|
274
|
-
preserveRawValues: release.shouldDismiss,
|
|
272
|
+
handoffVelocity,
|
|
275
273
|
commitProgress: release.commitProgress,
|
|
276
274
|
transitionSpec: release.transitionSpec,
|
|
277
275
|
resetSpec: release.resetSpec,
|
|
@@ -1,105 +1,73 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FALSE, TRUE } from "../../../../../constants";
|
|
2
2
|
import type { GestureStoreMap } from "../../../../../stores/gesture.store";
|
|
3
|
-
import
|
|
3
|
+
import { animateMany } from "../../shared/reset";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} from "../../
|
|
5
|
+
clearPanProgressDeltaValues,
|
|
6
|
+
clearRawPanValues,
|
|
7
|
+
} from "../../shared/values";
|
|
8
|
+
import type { PanReleasePlan } from "../../types";
|
|
9
9
|
|
|
10
10
|
interface ResetPanGestureValuesProps {
|
|
11
|
-
|
|
11
|
+
plan: PanReleasePlan;
|
|
12
12
|
gestures: GestureStoreMap;
|
|
13
|
-
shouldDismiss: boolean;
|
|
14
|
-
velocityX?: number;
|
|
15
|
-
velocityY?: number;
|
|
16
|
-
velocityNormX?: number;
|
|
17
|
-
velocityNormY?: number;
|
|
18
|
-
releaseVelocity?: number;
|
|
19
|
-
resetNormalizedValues?: boolean;
|
|
20
|
-
resetNormalizedValuesImmediately?: boolean;
|
|
21
|
-
preserveRawValues?: boolean;
|
|
22
13
|
updateLifecycle?: boolean;
|
|
23
14
|
}
|
|
24
15
|
|
|
25
|
-
const clearPanSettlingIfResting = (gestures: GestureStoreMap) => {
|
|
26
|
-
"worklet";
|
|
27
|
-
|
|
28
|
-
clearGestureSettlingIfResting(
|
|
29
|
-
gestures,
|
|
30
|
-
!gestures.dragging.get() &&
|
|
31
|
-
!gestures.dismissing.get() &&
|
|
32
|
-
Math.abs(gestures.x.get()) <= EPSILON &&
|
|
33
|
-
Math.abs(gestures.y.get()) <= EPSILON &&
|
|
34
|
-
Math.abs(gestures.normX.get()) <= EPSILON &&
|
|
35
|
-
Math.abs(gestures.normY.get()) <= EPSILON,
|
|
36
|
-
);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
16
|
export const resetPanGestureValues = ({
|
|
40
|
-
|
|
17
|
+
plan,
|
|
41
18
|
gestures,
|
|
42
|
-
shouldDismiss,
|
|
43
|
-
velocityX,
|
|
44
|
-
velocityY,
|
|
45
|
-
velocityNormX,
|
|
46
|
-
velocityNormY,
|
|
47
|
-
releaseVelocity,
|
|
48
|
-
resetNormalizedValues = true,
|
|
49
|
-
resetNormalizedValuesImmediately = false,
|
|
50
|
-
preserveRawValues = shouldDismiss,
|
|
51
19
|
updateLifecycle = true,
|
|
52
20
|
}: ResetPanGestureValuesProps) => {
|
|
53
21
|
"worklet";
|
|
54
|
-
const
|
|
22
|
+
const finishPanReset = () => {
|
|
55
23
|
"worklet";
|
|
56
|
-
if (updateLifecycle) {
|
|
57
|
-
|
|
24
|
+
if (!updateLifecycle || plan.shouldDismiss) {
|
|
25
|
+
return;
|
|
58
26
|
}
|
|
27
|
+
|
|
28
|
+
gestures.active.set(null);
|
|
29
|
+
gestures.direction.set(null);
|
|
30
|
+
gestures.settling.set(FALSE);
|
|
59
31
|
};
|
|
60
32
|
|
|
61
|
-
|
|
62
|
-
gestures.raw.x.set(0);
|
|
63
|
-
gestures.raw.y.set(0);
|
|
64
|
-
gestures.raw.normX.set(0);
|
|
65
|
-
gestures.raw.normY.set(0);
|
|
66
|
-
}
|
|
33
|
+
clearRawPanValues(gestures);
|
|
67
34
|
|
|
68
35
|
if (updateLifecycle) {
|
|
69
36
|
gestures.dragging.set(FALSE);
|
|
70
|
-
gestures.dismissing.set(shouldDismiss ? TRUE : FALSE);
|
|
71
|
-
gestures.settling.set(shouldDismiss ? FALSE : TRUE);
|
|
37
|
+
gestures.dismissing.set(plan.shouldDismiss ? TRUE : FALSE);
|
|
38
|
+
gestures.settling.set(plan.shouldDismiss ? FALSE : TRUE);
|
|
72
39
|
}
|
|
73
|
-
gestures.velocity.set(shouldDismiss ? (releaseVelocity ?? 0) : 0);
|
|
74
40
|
|
|
75
|
-
|
|
76
|
-
clearSettlingIfNeeded(),
|
|
77
|
-
);
|
|
78
|
-
animateResetValue(gestures.y, 0, getGestureResetSpec(spec, velocityY), () =>
|
|
79
|
-
clearSettlingIfNeeded(),
|
|
80
|
-
);
|
|
41
|
+
gestures.velocity.set(0);
|
|
81
42
|
|
|
82
|
-
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
43
|
+
const progressDeltaWasCommitted = typeof plan.commitProgress === "number";
|
|
85
44
|
|
|
86
|
-
if (
|
|
87
|
-
gestures
|
|
88
|
-
gestures.normY.set(0);
|
|
89
|
-
clearSettlingIfNeeded();
|
|
90
|
-
return;
|
|
45
|
+
if (progressDeltaWasCommitted) {
|
|
46
|
+
clearPanProgressDeltaValues(gestures);
|
|
91
47
|
}
|
|
92
48
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
49
|
+
animateMany(
|
|
50
|
+
[
|
|
51
|
+
{ value: gestures.x, toValue: 0, velocity: plan.resetVelocityX },
|
|
52
|
+
{ value: gestures.y, toValue: 0, velocity: plan.resetVelocityY },
|
|
53
|
+
{ value: gestures.normX, toValue: 0, velocity: plan.resetVelocityNormX },
|
|
54
|
+
{ value: gestures.normY, toValue: 0, velocity: plan.resetVelocityNormY },
|
|
55
|
+
...(progressDeltaWasCommitted
|
|
56
|
+
? []
|
|
57
|
+
: [
|
|
58
|
+
{
|
|
59
|
+
value: gestures.internal.progressDeltaX,
|
|
60
|
+
toValue: 0,
|
|
61
|
+
velocity: plan.resetVelocityNormX,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
value: gestures.internal.progressDeltaY,
|
|
65
|
+
toValue: 0,
|
|
66
|
+
velocity: plan.resetVelocityNormY,
|
|
67
|
+
},
|
|
68
|
+
]),
|
|
69
|
+
],
|
|
70
|
+
plan.resetSpec,
|
|
71
|
+
finishPanReset,
|
|
104
72
|
);
|
|
105
73
|
};
|
|
@@ -4,8 +4,9 @@ import { useNavigationHelpers } from "../../../../../hooks/navigation/use-naviga
|
|
|
4
4
|
import type { ScreenOptionsContextValue } from "../../../options";
|
|
5
5
|
import { usePanGestureSensitivity } from "../../hooks/use-gesture-sensitivity";
|
|
6
6
|
import { resolvePanRuntime } from "../../shared/runtime";
|
|
7
|
+
import { clearPanTrackingValues } from "../../shared/values";
|
|
7
8
|
import type {
|
|
8
|
-
|
|
9
|
+
GestureCompositionOwner,
|
|
9
10
|
GestureDimensions,
|
|
10
11
|
PanBehavior,
|
|
11
12
|
PanGestureEvent,
|
|
@@ -26,7 +27,7 @@ export const usePanBehavior = (
|
|
|
26
27
|
runtime: SharedValue<PanGestureRuntime>,
|
|
27
28
|
screenOptions: ScreenOptionsContextValue,
|
|
28
29
|
dimensions: GestureDimensions,
|
|
29
|
-
|
|
30
|
+
gestureCompositionOwner: SharedValue<GestureCompositionOwner>,
|
|
30
31
|
): PanBehavior => {
|
|
31
32
|
const { dismissScreen, requestDismiss } = useNavigationHelpers();
|
|
32
33
|
const { withSensitivity, resetSensitivity } =
|
|
@@ -35,17 +36,8 @@ export const usePanBehavior = (
|
|
|
35
36
|
const onStart = useCallback(() => {
|
|
36
37
|
"worklet";
|
|
37
38
|
const latestRuntime = resolvePanRuntime(runtime.get(), screenOptions.get());
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
gestures.x.set(0);
|
|
41
|
-
gestures.y.set(0);
|
|
42
|
-
gestures.normX.set(0);
|
|
43
|
-
gestures.normY.set(0);
|
|
44
|
-
gestures.velocity.set(0);
|
|
45
|
-
gestures.raw.x.set(0);
|
|
46
|
-
gestures.raw.y.set(0);
|
|
47
|
-
gestures.raw.normX.set(0);
|
|
48
|
-
gestures.raw.normY.set(0);
|
|
39
|
+
if (gestureCompositionOwner.get() === "pinch") {
|
|
40
|
+
clearPanTrackingValues(latestRuntime.stores.gestures);
|
|
49
41
|
resetSensitivity();
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
@@ -55,7 +47,7 @@ export const usePanBehavior = (
|
|
|
55
47
|
}
|
|
56
48
|
startPanBase(latestRuntime);
|
|
57
49
|
resetSensitivity();
|
|
58
|
-
}, [runtime, screenOptions, resetSensitivity,
|
|
50
|
+
}, [runtime, screenOptions, resetSensitivity, gestureCompositionOwner]);
|
|
59
51
|
|
|
60
52
|
const onUpdate = useCallback(
|
|
61
53
|
(rawEvent: PanGestureEvent) => {
|
|
@@ -86,7 +78,7 @@ export const usePanBehavior = (
|
|
|
86
78
|
|
|
87
79
|
const release = !latestRuntime.policy.enabled
|
|
88
80
|
? {
|
|
89
|
-
target: latestRuntime.stores.animations.
|
|
81
|
+
target: latestRuntime.stores.animations.transitionProgress.get(),
|
|
90
82
|
shouldDismiss: false,
|
|
91
83
|
initialVelocity: 0,
|
|
92
84
|
transitionSpec: undefined,
|
|
@@ -95,7 +87,7 @@ export const usePanBehavior = (
|
|
|
95
87
|
: latestRuntime.participation.effectiveSnapPoints.hasSnapPoints
|
|
96
88
|
? resolveSnapPanRelease(event, latestRuntime, dimensions)
|
|
97
89
|
: resolvePanRelease(event, latestRuntime, dimensions);
|
|
98
|
-
const
|
|
90
|
+
const isPanCompositionOwner = gestureCompositionOwner.get() === "pan";
|
|
99
91
|
|
|
100
92
|
finalizePanRelease(
|
|
101
93
|
release,
|
|
@@ -104,11 +96,11 @@ export const usePanBehavior = (
|
|
|
104
96
|
dimensions,
|
|
105
97
|
rawEvent,
|
|
106
98
|
requestDismiss,
|
|
107
|
-
|
|
99
|
+
gestureCompositionOwner,
|
|
108
100
|
);
|
|
109
101
|
|
|
110
|
-
if (
|
|
111
|
-
|
|
102
|
+
if (isPanCompositionOwner) {
|
|
103
|
+
gestureCompositionOwner.set(null);
|
|
112
104
|
}
|
|
113
105
|
},
|
|
114
106
|
[
|
|
@@ -118,7 +110,7 @@ export const usePanBehavior = (
|
|
|
118
110
|
dismissScreen,
|
|
119
111
|
requestDismiss,
|
|
120
112
|
withSensitivity,
|
|
121
|
-
|
|
113
|
+
gestureCompositionOwner,
|
|
122
114
|
],
|
|
123
115
|
);
|
|
124
116
|
|
|
@@ -3,11 +3,10 @@ import { useWindowDimensions } from "react-native";
|
|
|
3
3
|
import { Gesture } from "react-native-gesture-handler";
|
|
4
4
|
import type { SharedValue } from "react-native-reanimated";
|
|
5
5
|
import { useScreenOptionsContext } from "../../options";
|
|
6
|
-
import { useGestureBuilderState } from "../hooks/use-gesture-builder-state";
|
|
7
6
|
import { useStableRuntimeConfig } from "../hooks/use-stable-runtime-config";
|
|
8
7
|
import type {
|
|
9
8
|
DirectionClaimMap,
|
|
10
|
-
|
|
9
|
+
GestureCompositionOwner,
|
|
11
10
|
PanGesture,
|
|
12
11
|
ScreenGestureConfig,
|
|
13
12
|
ScrollGestureState,
|
|
@@ -19,27 +18,22 @@ interface UseBuildPanGestureProps {
|
|
|
19
18
|
scrollState: SharedValue<ScrollGestureState | null>;
|
|
20
19
|
gestureConfig: ScreenGestureConfig;
|
|
21
20
|
childDirectionClaims: SharedValue<DirectionClaimMap>;
|
|
22
|
-
|
|
21
|
+
gestureCompositionOwner: SharedValue<GestureCompositionOwner>;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
export const useBuildPanGesture = ({
|
|
26
25
|
scrollState,
|
|
27
26
|
gestureConfig,
|
|
28
27
|
childDirectionClaims,
|
|
29
|
-
|
|
28
|
+
gestureCompositionOwner,
|
|
30
29
|
}: UseBuildPanGestureProps): PanGesture => {
|
|
31
30
|
const dimensions = useWindowDimensions();
|
|
32
31
|
const { participation, pan: policy } = gestureConfig;
|
|
33
32
|
const screenOptions = useScreenOptionsContext();
|
|
34
33
|
|
|
35
|
-
const { gestureProgressBaseline, lockedSnapPoint } =
|
|
36
|
-
useGestureBuilderState(participation);
|
|
37
|
-
|
|
38
34
|
const runtime = useStableRuntimeConfig({
|
|
39
35
|
participation,
|
|
40
36
|
policy,
|
|
41
|
-
gestureProgressBaseline,
|
|
42
|
-
lockedSnapPoint,
|
|
43
37
|
});
|
|
44
38
|
|
|
45
39
|
const activation = usePanActivation({
|
|
@@ -48,14 +42,14 @@ export const useBuildPanGesture = ({
|
|
|
48
42
|
runtime,
|
|
49
43
|
screenOptions,
|
|
50
44
|
dimensions,
|
|
51
|
-
|
|
45
|
+
gestureCompositionOwner,
|
|
52
46
|
});
|
|
53
47
|
|
|
54
48
|
const behavior = usePanBehavior(
|
|
55
49
|
runtime,
|
|
56
50
|
screenOptions,
|
|
57
51
|
dimensions,
|
|
58
|
-
|
|
52
|
+
gestureCompositionOwner,
|
|
59
53
|
);
|
|
60
54
|
|
|
61
55
|
const panGesture = useMemo(() => {
|