Skip to content

Commit d1b38c4

Browse files
committed
visual bug fixes
1 parent 380f27e commit d1b38c4

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

example/src/Screen/CreateGesture.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
import React, { useState } from "react";
22
import { SafeAreaView, View, Text, Alert } from "react-native";
3+
import _ from "lodash";
34
import GestureDetector, {
45
GesturePath,
56
Cursor,
67
GestureRecorder,
78
} from "react-native-gesture-detector";
89

910
const CreateGestureScreen = () => {
10-
const [tmpOffset, setTmpOffset] = useState(null);
11+
const [recorderOffset, setRecorderOffset] = useState(null);
12+
const [detectorOffset, setDetectorOffset] = useState(null);
1113
const [finishedGesture, setFinishedGesture] = useState([]);
1214

1315
return (
1416
<SafeAreaView style={{ flex: 1 }}>
15-
<GestureRecorder onPanRelease={gesture => setFinishedGesture(gesture)}>
17+
<GestureRecorder
18+
onPanRelease={gesture => {
19+
setFinishedGesture(gesture);
20+
setDetectorOffset(recorderOffset);
21+
}}
22+
>
1623
{({ gesture, offset }) => {
17-
if (tmpOffset !== offset && offset !== null) {
18-
setTmpOffset(offset);
24+
if (!_.isEqual(offset, recorderOffset) && offset !== null) {
25+
setRecorderOffset(offset);
1926
}
2027

2128
return (
@@ -31,14 +38,14 @@ const CreateGestureScreen = () => {
3138
<View style={{ position: "relative", width: "100%", height: "100%" }}>
3239
<GesturePath
3340
path={gesture.map(coordinate => {
34-
if (!tmpOffset) {
35-
return coordinate;
41+
if (recorderOffset) {
42+
return {
43+
x: coordinate.x + recorderOffset.x,
44+
y: coordinate.y + recorderOffset.y,
45+
};
3646
}
3747

38-
return {
39-
x: coordinate.x + tmpOffset.x,
40-
y: coordinate.y + tmpOffset.y,
41-
};
48+
return coordinate;
4249
})}
4350
color="green"
4451
slopRadius={30}
@@ -67,14 +74,14 @@ const CreateGestureScreen = () => {
6774
<View style={{ position: "relative", width: "100%", height: "100%" }}>
6875
<GesturePath
6976
path={finishedGesture.map(coordinate => {
70-
if (!tmpOffset) {
71-
return coordinate;
77+
if (detectorOffset) {
78+
return {
79+
x: coordinate.x + detectorOffset.x,
80+
y: coordinate.y + detectorOffset.y,
81+
};
7282
}
7383

74-
return {
75-
x: coordinate.x + tmpOffset.x,
76-
y: coordinate.y + tmpOffset.y,
77-
};
84+
return coordinate;
7885
})}
7986
color="green"
8087
slopRadius={30}

0 commit comments

Comments
 (0)