This is a simple React module that introduces a tinder-like swipeable component.
Online example here.
You can use yarn
or npm
.
yarn add react-deck-swiper
npm install --save react-deck-swiper
import * as React from 'react';
import { Swipeable, direction } from 'react-deck-swiper';
const Component = () => {
const handleOnSwipe = (swipeDirection) => {
if (swipeDirection === direction.RIGHT) {
// handle right swipe
return;
}
if (swipeDirection === direction.LEFT) {
// handle left swipe
return;
}
}
return (
<Swipeable onSwipe={handleOnSwipe}>
<div className="card">
Your card content here
</div>
</Swipeable>
);
};
export default Component;
Name | Type | Required | Default value | Description |
---|---|---|---|---|
children |
React.ReactChild |
required | - | component that will be swipeable |
onBeforeSwipe |
(forceSwipe, cancelSwipe, direction) => void |
optional | undefined |
callback executed on swipe start |
onSwipe |
(direction) => void |
optional | undefined |
callback executed on swipe end |
onAfterSwipe |
() => void |
optional | undefined |
callback executed right after onSwipe end |
onOpacityChange |
(opacity) => void |
optional | undefined |
callback executed when the card opacity changes on swipe |
wrapperHeight |
string |
optional | 100% |
height prop for swipeable wrapper |
wrapperWidth |
string |
optional | 100% |
width prop for swipeable wrapper |
swipeThreshold |
number |
optional | 120 |
offset in px swiped to consider as swipe |
fadeThreshold |
number |
optional | 40 |
offset when opacity fade should start |
renderButtons |
({right, left}) => React.Component |
optional | undefined |
function to render buttons to force swipes |
Pull requests are welcome! If you have any feedback, issue or suggestion, feel free to open a new issue so we can talk about it 💬.
MIT
Thanks to goncy for the first version of this lib.
Made with ❤️ by Pedro Bini @ Jungsoft.