0.0.2 • Published 4 years ago

react-native-swipe-list v0.0.2

Weekly downloads
8
License
MIT
Repository
github
Last release
4 years ago

react-native-swipe-list

Version Supports iOS and Android MIT License

An FlatList Component that is swipeable.

This was originally a fork of an experimental component SwipeableFlatList which was removed from the react-native core.

Demo

Install

In order to use this package, you will also need to install react-native-gesture-handler to your project.

yarn add react-native-swipe-list react-native-gesture-handler

Usage

import React, {useState} from 'react';
import {SafeAreaView, StyleSheet, LayoutAnimation} from 'react-native';
import {
  SwipeableFlatList,
  SwipeableQuickActions,
  SwipeableQuickActionButton,
} from 'react-native-swipe-list';
import {ListItem} from './ListItem';
const styles = StyleSheet.create({
  container: {flex: 1},
});

const initialData = [...Array(30)].map((_, index) => ({id:index, text:`Item ${index}`}));

export const TestModule = () => {
  const [data, setData] = useState(initialData);

  return (
    <SafeAreaView style={styles.container}>
      <SwipeableFlatList
        data={data}
        renderItem={({item}) => <ListItem {...item} />}
        keyExtractor={index => index.id}
        renderLeftActions={({item}) => (
          <SwipeableQuickActions>
            <SwipeableQuickActionButton
              onPress={() => {
                LayoutAnimation.configureNext(
                  LayoutAnimation.Presets.easeInEaseOut,
                );
                setData(data.filter(value => value !== item.album));
              }}
              text="delete"
              textStyle={{fontWeight: 'bold', color: 'white'}}
            />
          </SwipeableQuickActions>
        )}
        renderRightActions={({item}) => (
          <SwipeableQuickActions>
            <SwipeableQuickActionButton
              onPress={() => {}}
              text="Other"
            />
            <SwipeableQuickActionButton
              onPress={() => {}}
              text="Flag"
            />
            <SwipeableQuickActionButton
              onPress={() => {}}
              text="Archive"
            />
          </SwipeableQuickActions>
        )}
      />
    </SafeAreaView>
  );
};

Reference

Props

SwipeableFlatList takes in FlatListProps as well as the following props:

renderLeftActions

Views to be displayed when user swipes the item from the left side.

TypeRequired
(info: ListRenderItemInfo) => React.ReactNodeNo

renderRightActions

Views to be displayed when user swipes the item from the right side.

TypeRequired
(info: ListRenderItemInfo) => React.ReactNodeNo

closeOnScroll

When true, swiped view will close when user scrolls. Default is true

TypeRequired
booleanNo

License

The library is released under the MIT license. For more information see LICENSE.