import React, {
Component
} from 'react';
import {
PanResponder
} from 'react-native';
import Svg, {
Path,
Text,
G,
Line,
Polyline
} from 'react-native-svg';
class PanExample extends Component {
static title = 'Bind PanResponder on the SVG Shape';
constructor() {
super(...arguments);
this.state = {
x: 0,
y: 0,
hover: false
};
}
componentWillMount = () => {
this._panResponder = PanResponder.create({
onStartShouldSetPanResponder: this._alwaysTrue,
onMoveShouldSetPanResponder: this._alwaysTrue,
onPanResponderGrant: this._handlePanResponderGrant,
onPanResponderMove: this._handlePanResponderMove,
onPanResponderRelease: this._handlePanResponderEnd,
onPanResponderTerminate: this._handlePanResponderEnd
});
};
_previousLeft = 0;
_previousTop = 0;
_alwaysTrue = () => true;
_handlePanResponderMove = (e, gestureState) => {
this.setState({
x: this._previousLeft + gestureState.dx,
y: this._previousTop + gestureState.dy
});
};
_handlePanResponderGrant = () => {
this.root.setNativeProps({
opacity: 0.5
});
};
_handlePanResponderEnd = (e, gestureState) => {
this.root.setNativeProps({
opacity: 1
});
this._previousLeft += gestureState.dx;
this._previousTop += gestureState.dy;
};
render () {
return ;
}
}
const icon = ;
const samples = [
PanExample
];
const scroll = false;
export {
icon,
samples,
scroll
};