Skip to content

Commit b0d6b16

Browse files
committed
chore: upgrade react-native-gesture-handler and react-native-reanimated dependencies
- Update react-native-gesture-handler to version 2.24.0 - Update react-native-reanimated to version 3.17.1 - Add reanimated babel plugin - Update peer dependency requirements for react and react-native - Add 'worklet' directive to gesture handler functions in ImageViewer
1 parent a0dc608 commit b0d6b16

File tree

5 files changed

+40
-21
lines changed

5 files changed

+40
-21
lines changed

babel.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
module.exports = {
22
presets: ['module:react-native-builder-bob/babel-preset'],
3+
plugins: ['react-native-reanimated/plugin'],
34
};

example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
"web": "expo start --web"
1010
},
1111
"dependencies": {
12+
"@duocvo/react-native-gesture-image": "*",
1213
"@expo/metro-runtime": "~4.0.1",
1314
"expo": "~52.0.37",
1415
"expo-status-bar": "~2.0.1",
1516
"react": "18.3.1",
1617
"react-dom": "18.3.1",
1718
"react-native": "0.76.7",
18-
"react-native-web": "~0.19.13",
19-
"@duocvo/react-native-gesture-image": "*"
19+
"react-native-web": "~0.19.13"
2020
},
2121
"devDependencies": {
2222
"@babel/core": "^7.20.0",

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,17 @@
8383
"react": "18.3.1",
8484
"react-native": "0.76.7",
8585
"react-native-builder-bob": "^0.37.0",
86-
"react-native-gesture-handler": "~2.20.2",
87-
"react-native-reanimated": "~3.16.1",
86+
"react-native-gesture-handler": "^2.24.0",
87+
"react-native-reanimated": "^3.17.1",
8888
"release-it": "^17.10.0",
8989
"typescript": "^5.2.2"
9090
},
9191
"resolutions": {
9292
"@types/react": "^18.2.44"
9393
},
9494
"peerDependencies": {
95-
"react": "*",
96-
"react-native": "*"
95+
"react": ">=18.0.0",
96+
"react-native": ">=0.72.0"
9797
},
9898
"workspaces": [
9999
"example"

src/ImageViewer.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,12 @@ const ImageViewer = ({ source, imageStyle }: ImageViewerProps) => {
8888

8989
const pinch = Gesture.Pinch()
9090
.onStart((event) => {
91+
'worklet';
9192
focalX.value = event.focalX - SCREEN_WIDTH / 2;
9293
focalY.value = event.focalY - SCREEN_HEIGHT / 2;
9394
})
9495
.onUpdate((event) => {
96+
'worklet';
9597
const dampening = 0.1;
9698
const scaleFactor = 1 + (event.scale - 1) * dampening;
9799
const newScale = scale.value * scaleFactor;
@@ -105,6 +107,7 @@ const ImageViewer = ({ source, imageStyle }: ImageViewerProps) => {
105107
}
106108
})
107109
.onEnd(() => {
110+
'worklet';
108111
if (scale.value <= 1) {
109112
scale.value = withTiming(1, { duration: 300 });
110113
translateX.value = withTiming(0, { duration: 300 });
@@ -119,10 +122,12 @@ const ImageViewer = ({ source, imageStyle }: ImageViewerProps) => {
119122

120123
const pan = Gesture.Pan()
121124
.onStart(() => {
125+
'worklet';
122126
lastTranslateX.value = translateX.value;
123127
lastTranslateY.value = translateY.value;
124128
})
125129
.onUpdate((event) => {
130+
'worklet';
126131
if (scale.value > 1) {
127132
const scaledWidth = imageWidth.value * scale.value;
128133
const scaledHeight = imageHeight.value * scale.value;
@@ -154,13 +159,15 @@ const ImageViewer = ({ source, imageStyle }: ImageViewerProps) => {
154159
}
155160
})
156161
.onEnd(() => {
162+
'worklet';
157163
snapToEdges();
158164
})
159165
.enabled(activePan);
160166

161167
const doubleTap = Gesture.Tap()
162168
.numberOfTaps(2)
163169
.onStart((event) => {
170+
'worklet';
164171
if (scale.value > 1) {
165172
scale.value = withTiming(1);
166173
translateX.value = withTiming(0);

yarn.lock

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1843,7 +1843,7 @@ __metadata:
18431843
languageName: node
18441844
linkType: hard
18451845

1846-
"@duocvo/react-native-gesture-image@workspace:.":
1846+
"@duocvo/react-native-gesture-image@*, @duocvo/react-native-gesture-image@workspace:.":
18471847
version: 0.0.0-use.local
18481848
resolution: "@duocvo/react-native-gesture-image@workspace:."
18491849
dependencies:
@@ -1863,13 +1863,13 @@ __metadata:
18631863
react: 18.3.1
18641864
react-native: 0.76.7
18651865
react-native-builder-bob: ^0.37.0
1866-
react-native-gesture-handler: ~2.20.2
1867-
react-native-reanimated: ~3.16.1
1866+
react-native-gesture-handler: ^2.24.0
1867+
react-native-reanimated: ^3.17.1
18681868
release-it: ^17.10.0
18691869
typescript: ^5.2.2
18701870
peerDependencies:
1871-
react: "*"
1872-
react-native: "*"
1871+
react: ">=18.0.0"
1872+
react-native: ">=0.72.0"
18731873
languageName: unknown
18741874
linkType: soft
18751875

@@ -11629,7 +11629,7 @@ __metadata:
1162911629
languageName: node
1163011630
linkType: hard
1163111631

11632-
"prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
11632+
"prop-types@npm:^15.8.1":
1163311633
version: 15.8.1
1163411634
resolution: "prop-types@npm:15.8.1"
1163511635
dependencies:
@@ -11838,18 +11838,17 @@ __metadata:
1183811838
languageName: node
1183911839
linkType: hard
1184011840

11841-
"react-native-gesture-handler@npm:~2.20.2":
11842-
version: 2.20.2
11843-
resolution: "react-native-gesture-handler@npm:2.20.2"
11841+
"react-native-gesture-handler@npm:^2.24.0":
11842+
version: 2.24.0
11843+
resolution: "react-native-gesture-handler@npm:2.24.0"
1184411844
dependencies:
1184511845
"@egjs/hammerjs": ^2.0.17
1184611846
hoist-non-react-statics: ^3.3.0
1184711847
invariant: ^2.2.4
11848-
prop-types: ^15.7.2
1184911848
peerDependencies:
1185011849
react: "*"
1185111850
react-native: "*"
11852-
checksum: 8d9e7496615dad4e6bb6dd1c750c2d3b2e57c6173a1d466b4503b28b159b1dbbb1e7527c3d4bda12324422200c07835f34d81c9bd3cd1b7f594b22949bef274a
11851+
checksum: 65abaeef68180fee2811d01d88ff50c231a91faca05279222fcaaa55349e758b68a7d6a9ac3eddfb1887f6b4c4790ac195b99989f1ad8a2a1f3f3bdff3ba0a76
1185311852
languageName: node
1185411853
linkType: hard
1185511854

@@ -11858,6 +11857,7 @@ __metadata:
1185811857
resolution: "react-native-gesture-image-example@workspace:example"
1185911858
dependencies:
1186011859
"@babel/core": ^7.20.0
11860+
"@duocvo/react-native-gesture-image": "*"
1186111861
"@expo/metro-runtime": ~4.0.1
1186211862
expo: ~52.0.37
1186311863
expo-status-bar: ~2.0.1
@@ -11869,9 +11869,19 @@ __metadata:
1186911869
languageName: unknown
1187011870
linkType: soft
1187111871

11872-
"react-native-reanimated@npm:~3.16.1":
11873-
version: 3.16.7
11874-
resolution: "react-native-reanimated@npm:3.16.7"
11872+
"react-native-is-edge-to-edge@npm:1.1.6":
11873+
version: 1.1.6
11874+
resolution: "react-native-is-edge-to-edge@npm:1.1.6"
11875+
peerDependencies:
11876+
react: ">=18.2.0"
11877+
react-native: ">=0.73.0"
11878+
checksum: 4e07c1e34c01c8d50fd7c1d0460db06f6f0515197405230386a8ffb950cb724b10743af032310d1384df0a90059bfb8992ba2d93344ce86315315f0493feccc2
11879+
languageName: node
11880+
linkType: hard
11881+
11882+
"react-native-reanimated@npm:^3.17.1":
11883+
version: 3.17.1
11884+
resolution: "react-native-reanimated@npm:3.17.1"
1187511885
dependencies:
1187611886
"@babel/plugin-transform-arrow-functions": ^7.0.0-0
1187711887
"@babel/plugin-transform-class-properties": ^7.0.0-0
@@ -11884,11 +11894,12 @@ __metadata:
1188411894
"@babel/preset-typescript": ^7.16.7
1188511895
convert-source-map: ^2.0.0
1188611896
invariant: ^2.2.4
11897+
react-native-is-edge-to-edge: 1.1.6
1188711898
peerDependencies:
1188811899
"@babel/core": ^7.0.0-0
1188911900
react: "*"
1189011901
react-native: "*"
11891-
checksum: 108095709cd7a3effc5b5d276d94e161b399bd2d06e32140834168a0051545401bb09228071447e5925571da3f86f335d2a82c76751cdae07f66faf50b25c97f
11902+
checksum: fd05040a3fc6a8f4efb387657c0cd6c314e5e6b50f859e127d6891d8f81c65b020ddcf78615aa0074b4e134e450d38c40db916c544e1e2efa26c50c82815607d
1189211903
languageName: node
1189311904
linkType: hard
1189411905

0 commit comments

Comments
 (0)