react-native-swipeable-list-view
Version:
React native swipeable list view component
60 lines • 2.05 kB
JavaScript
import React from 'react';
import { Animated, View } from 'react-native';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import Swipeable from 'react-native-gesture-handler/Swipeable';
import PropTypes from 'prop-types';
const Swipelist = _ref => {
let {
overshootRight = false,
friction = 1,
rightOpenValue = 200,
data,
renderRightItem,
renderHiddenItem,
onSwipelistOpen,
onSwipelistClose
} = _ref;
const renderRightAction = (progress, item, index) => {
const transLeft = progress.interpolate({
inputRange: [0, 1],
outputRange: [rightOpenValue, 1]
});
return /*#__PURE__*/React.createElement(View, {
style: {
width: rightOpenValue
}
}, /*#__PURE__*/React.createElement(Animated.View, {
style: {
flex: 1,
transform: [{
translateX: transLeft
}]
}
}, renderHiddenItem(item, index)));
};
const RenderListView = () => {
return /*#__PURE__*/React.createElement(React.Fragment, null, data === null || data === void 0 ? void 0 : data.map((item, index) => /*#__PURE__*/React.createElement(View, {
key: index
}, /*#__PURE__*/React.createElement(GestureHandlerRootView, null, /*#__PURE__*/React.createElement(Swipeable, {
renderRightActions: progress => renderRightAction(progress, item, index),
onSwipeableOpen: onSwipelistOpen,
onSwipeableClose: onSwipelistClose,
friction: friction,
overshootRight: overshootRight
// rightThreshold={200}
}, renderRightItem(item, index))))));
};
return /*#__PURE__*/React.createElement(RenderListView, null);
};
Swipelist.propTypes = {
data: PropTypes.array.isRequired,
renderRightItem: PropTypes.func.isRequired,
renderHiddenItem: PropTypes.func.isRequired,
rightOpenValue: PropTypes.number,
friction: PropTypes.number,
overshootRight: PropTypes.bool,
onSwipelistOpen: PropTypes.func,
onSwipelistClose: PropTypes.func
};
export default Swipelist;
//# sourceMappingURL=Swipelist.js.map