
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
react-native-swipe-detect
Advanced tools
React Native component for handling swipe gestures in up, down, left and right direction. (forked from https://github.com/glepur/react-native-swipe-gestures, primarily to fix vertical scrolling on iOS)
npm i -S react-native-swipe-detect
"use strict";
import React, { Component } from "react";
import { View, Text } from "react-native";
import GestureRecognizer, { swipeDirections } from "react-native-swipe-detect";
class SomeComponent extends Component {
constructor(props) {
super(props);
this.state = {
myText: "I'm ready to get swiped!",
gestureName: "none",
backgroundColor: "#fff",
};
}
onSwipeUp(gestureState) {
this.setState({ myText: "You swiped up!" });
}
onSwipeDown(gestureState) {
this.setState({ myText: "You swiped down!" });
}
onSwipeLeft(gestureState) {
this.setState({ myText: "You swiped left!" });
}
onSwipeRight(gestureState) {
this.setState({ myText: "You swiped right!" });
}
onSwipe(gestureName, gestureState) {
const { SWIPE_UP, SWIPE_DOWN, SWIPE_LEFT, SWIPE_RIGHT } = swipeDirections;
this.setState({ gestureName: gestureName });
switch (gestureName) {
case SWIPE_UP:
this.setState({ backgroundColor: "red" });
break;
case SWIPE_DOWN:
this.setState({ backgroundColor: "green" });
break;
case SWIPE_LEFT:
this.setState({ backgroundColor: "blue" });
break;
case SWIPE_RIGHT:
this.setState({ backgroundColor: "yellow" });
break;
}
}
render() {
const config = {
velocityThreshold: 0.3,
directionalOffsetThreshold: 80,
};
return (
<GestureRecognizer
onSwipe={(direction, state) => this.onSwipe(direction, state)}
onSwipeUp={(state) => this.onSwipeUp(state)}
onSwipeDown={(state) => this.onSwipeDown(state)}
onSwipeLeft={(state) => this.onSwipeLeft(state)}
onSwipeRight={(state) => this.onSwipeRight(state)}
config={config}
style={{
flex: 1,
backgroundColor: this.state.backgroundColor,
}}
>
<Text>{this.state.myText}</Text>
<Text>onSwipe callback received gesture: {this.state.gestureName}</Text>
</GestureRecognizer>
);
}
}
export default SomeComponent;
Can be passed within optional config
property.
Params | Type | Default | Description |
---|---|---|---|
velocityThreshold | Number | 0.3 | Velocity that has to be breached in order for swipe to be triggered (vx and vy properties of gestureState ) |
directionalOffsetThreshold | Number | 70 | Absolute offset that shouldn't be breached for swipe to be triggered (dy for horizontal swipe, dx for vertical swipe) |
gestureIsClickThreshold | Number | 5 | Absolute distance that should be breached for the gesture to not be considered a click (dx or dy properties of gestureState ) |
enableSwipeUp | Boolean | true | Determines whether upward swipes should be recognized |
enableSwipeDown | Boolean | true | Determines whether downward swipes should be recognized |
enableSwipeLeft | Boolean | true | Determines whether left swipes should be recognized |
enableSwipeRight | Boolean | true | Determines whether right swipes should be recognized |
Params | Type | Description |
---|---|---|
gestureName | String | Name of the gesture (look example above) |
gestureState | Object | gestureState received from PanResponder |
Params | Type | Description |
---|---|---|
gestureState | Object | gestureState received from PanResponder |
Params | Type | Description |
---|---|---|
gestureState | Object | gestureState received from PanResponder |
Params | Type | Description |
---|---|---|
gestureState | Object | gestureState received from PanResponder |
Params | Type | Description |
---|---|---|
gestureState | Object | gestureState received from PanResponder |
To prevent any vertical scrolling hiccups on iOS, disable vertical swipe recognition with a config like this:
<GestureRecognizer
config={{
enableSwipeUp: false,
enableSwipeDown: false,
}}
>
FAQs
4-directional swipe detection for react-native.
The npm package react-native-swipe-detect receives a total of 559 weekly downloads. As such, react-native-swipe-detect popularity was classified as not popular.
We found that react-native-swipe-detect demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.