Skip to content
Merged
Show file tree
Hide file tree
Changes from 61 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
4e3e30f
Pan gesture
m-bert Dec 9, 2025
7ac164d
Merge branch 'next' into @mbert/docs-v3
m-bert Dec 10, 2025
203131e
Finish (?) Pan
m-bert Dec 10, 2025
db99336
Tap
m-bert Dec 10, 2025
f01bd66
Long press
m-bert Dec 10, 2025
5490439
Rotation
m-bert Dec 10, 2025
ded8083
Pinch
m-bert Dec 10, 2025
e38591c
Fling
m-bert Dec 10, 2025
f338fa7
Hover
m-bert Dec 10, 2025
11c91a7
Native
m-bert Dec 10, 2025
37d7438
Manual
m-bert Dec 10, 2025
a93970a
Fix path
m-bert Dec 10, 2025
d23e66b
Remove cache from workflow
m-bert Dec 10, 2025
5c0b717
composition
m-bert Dec 11, 2025
f293949
Remove PanHandlerData
m-bert Dec 15, 2025
34a93a5
Use correct HandlerData
m-bert Dec 15, 2025
f4847dc
Merge branch 'next' into @mbert/docs-v3
m-bert Dec 15, 2025
87a1130
Merge branch 'next' into @mbert/docs-v3
m-bert Dec 16, 2025
b96d788
Bye bye API 2
m-bert Dec 16, 2025
cf3f810
Fix hover
m-bert Dec 16, 2025
944d689
Fix old links
m-bert Dec 16, 2025
d2958e0
Another links
m-bert Dec 16, 2025
d8eaaeb
remove useless prop
m-bert Dec 22, 2025
b2a373e
Add warning to requireToFail
m-bert Dec 22, 2025
d3c7893
One composition
m-bert Dec 22, 2025
e96349e
Remove outdated info
m-bert Dec 22, 2025
cd7c0d6
Remove SharedValue notes
m-bert Dec 22, 2025
ca2d46a
rephrase exclusive
m-bert Dec 22, 2025
1811c9c
Other composition updates
m-bert Dec 22, 2025
4fa234f
Change reference to example
m-bert Dec 22, 2025
fb8e2ef
Change reference to example yet again (manual)
m-bert Dec 22, 2025
47da2df
Tapp
m-bert Dec 22, 2025
c8a4a76
Native on web
m-bert Dec 22, 2025
5c3d918
Add missing pan properties
m-bert Dec 22, 2025
a8c6ccc
Simplify pinch example
m-bert Dec 22, 2025
421d247
scaleChange
m-bert Dec 22, 2025
b14eadf
Add pan headers
m-bert Dec 22, 2025
b769862
Rotation gesture changes
m-bert Dec 22, 2025
49b1d3e
Test id correct prop name
m-bert Dec 22, 2025
41f7a4f
Add SharedValue info
m-bert Dec 22, 2025
1fb9b51
Add missing shared value info to long press
m-bert Dec 22, 2025
6d2da5a
Remove secondary headers
m-bert Dec 22, 2025
f90b378
Change order
m-bert Dec 22, 2025
b4cd005
Merge branch 'next' into @mbert/docs-detector
m-bert Dec 23, 2025
5255e4a
Detecor page
m-bert Dec 23, 2025
205c0a8
Gesture detector
m-bert Dec 23, 2025
4c53b94
Change ordering
m-bert Dec 23, 2025
42b04b1
Update links
m-bert Dec 23, 2025
03501dc
Other links
m-bert Dec 23, 2025
e1fae87
Merge branch 'next' into @mbert/docs-detector
m-bert Jan 7, 2026
59fd8df
Merge branch 'next' into @mbert/docs-detector
m-bert Jan 9, 2026
68103e4
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
e58292d
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
ef9235b
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
a58babb
Review suggestions #1
m-bert Jan 26, 2026
9939cfd
Review suggestions 2
m-bert Jan 26, 2026
d7e38d4
Improve CollapsibleCode component
m-bert Jan 12, 2026
af2b3bf
Interaction with Reanimated
m-bert Jan 26, 2026
65c4bf5
Add Animated
m-bert Jan 26, 2026
79a2ff3
Merge branch 'next' into @mbert/docs-detector
m-bert Jan 26, 2026
bc735eb
Add use cases
m-bert Jan 26, 2026
d157b24
Move reusing gestures to redbox
m-bert Jan 26, 2026
f70bf74
Update packages/docs-gesture-handler/docs/fundamentals/animated-inter…
m-bert Jan 26, 2026
37e99bf
Update packages/docs-gesture-handler/docs/fundamentals/animated-inter…
m-bert Jan 26, 2026
bf6061a
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
72f7eb4
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
51be282
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
f69643e
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
dc19675
Update packages/docs-gesture-handler/docs/fundamentals/reanimated-int…
m-bert Jan 26, 2026
4ec4ebb
Update packages/docs-gesture-handler/docs/fundamentals/gesture-detect…
m-bert Jan 26, 2026
dbaae0e
Turning off reanimated
m-bert Jan 26, 2026
7157558
Merge branch '@mbert/docs-detector' of github.com:software-mansion/re…
m-bert Jan 26, 2026
4f8e6dc
Mention all detectors
m-bert Jan 26, 2026
16eb6cb
Merge branch 'next' into @mbert/docs-detector
m-bert Jan 26, 2026
d39af79
Update packages/docs-gesture-handler/docs/fundamentals/reanimated-int…
m-bert Jan 27, 2026
2df4f82
Update packages/docs-gesture-handler/docs/fundamentals/reanimated-int…
m-bert Jan 27, 2026
6fed3c3
Add useAnimated flag
m-bert Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
id: animated-interactions
title: Integration with Animated
sidebar_label: Integration with Animated
sidebar_position: 5
---

import CollapsibleCode from '@site/src/components/CollapsibleCode';

Using hook API allows for smooth integration with the [Animated API](https://reactnative.dev/docs/animated). `Animated.event` mapping depends on `useNativeDriver` property. `Animated.event` can only be used in `onUpdate` callbacks.
Comment thread
m-bert marked this conversation as resolved.
Outdated

:::danger Mixing Reanimated and Animated
It is not possible to mix `Reanimated` and `Animated` in the same `GestureDetector`.
Comment thread
j-piasecki marked this conversation as resolved.
Outdated
:::

<CollapsibleCode
label="Show full example"
expandedLabel="Hide full example"
lineBounds={[8, 31]}
src={`
import * as React from 'react';
import { Animated, StyleSheet, useAnimatedValue } from 'react-native';
import {
GestureHandlerRootView,
GestureDetector,
usePanGesture,
} from 'react-native-gesture-handler';

export default function App() {
const value = useAnimatedValue(0);

const event = Animated.event(
[{ nativeEvent: { handlerData: { translationX: value } } }],
{
useNativeDriver: true,
}
);

const gesture = usePanGesture({
// highlight-next-line
onUpdate: event,
});

return (
<GestureHandlerRootView>
<GestureDetector gesture={gesture}>
<Animated.View
style={[styles.box, { transform: [{ translateX: value }] }]}
/>
</GestureDetector>
</GestureHandlerRootView>
);
}

const styles = StyleSheet.create({
box: {
width: 150,
height: 150,
backgroundColor: '#b58df1',
},
});
`}/>

## useNativeDriver

When using `Animated.event` with `useNativeDriver` set to `false`, it is important to set [`disableReanimated`](/docs/fundamentals/reanimated-interactions#disablereanimated) to `true` in the gesture configuration.
Comment thread
m-bert marked this conversation as resolved.
Outdated

Mapping of `Animated.event` depends on the value of `useNativeDriver` property. When set to `true`, event data can be accessed through `nativeEvent.handlerData` property:

```jsx
const value = useAnimatedValue(0);

const event = Animated.event(
[{ nativeEvent: { handlerData: { /* translationX: value, ... */ } } }],
{ useNativeDriver: true }
);
```

In case of `useNativeDriver` set to `false`, event data is accessed directly:

```jsx
const value = useAnimatedValue(0);

const event = Animated.event(
[ { /* translationX: value, ... */ } ],
{ useNativeDriver: false }
);
```

## Usage with VirtualGestureDetector

Using `Animated.event` with [`VirtualGestureDetector`](/docs/fundamentals/gesture-detectors#virtualgesturedetector) is possible only when `useNativeDriver` is set to `false`.

<CollapsibleCode
label="Show full example"
expandedLabel="Hide full example"
lineBounds={[8, 33]}
src={`
import React from 'react';
import { View, StyleSheet, Animated, useAnimatedValue } from 'react-native';
import {
GestureHandlerRootView,
InterceptingGestureDetector,
usePanGesture,
VirtualGestureDetector,
} from 'react-native-gesture-handler';

export default function App() {
const value = useAnimatedValue(0);
const event = Animated.event([{ translationX: value }], {
useNativeDriver: false,
});

const panGesture = usePanGesture({
onUpdate: event,
disableReanimated: true,
});

return (
<GestureHandlerRootView style={styles.container}>
<InterceptingGestureDetector>
<View style={styles.outerBox}>
<VirtualGestureDetector gesture={panGesture}>
<Animated.View
style={[styles.innerBox, { transform: [{ translateX: value }] }]}
/>
</VirtualGestureDetector>
</View>
</InterceptingGestureDetector>
</GestureHandlerRootView>
);
}

const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
outerBox: {
backgroundColor: '#b58df1',
width: 150,
height: 150,
},
innerBox: {
width: 100,
height: 100,
backgroundColor: 'blue',
},
});
`}/>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
id: gesture-composition
title: Gesture composition & interactions
sidebar_label: Gesture composition & interactions
sidebar_position: 10
sidebar_position: 6
---

RNGH3 simplifies gesture interaction through dedicated composition hooks and configuration properties. To choose the right approach, simply ask: Are all the gestures attached to the same component?
Expand Down
Loading