npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@faisolp/react-native-swipe-item

v0.7.3-rc2

Published

The swipeale item for react-native

Downloads

1

Readme

React Native Swipe Item

A swipe item for react-native. Support both iOS and Android.

Fix error

SwipeProvider breaks on type checking, all the component becomes red and types are not compatible

Example

See react-native-swipe-item-demo.

Installation


npm i --save @faisolp/react-native-swipe-item
  • if you use react-native 0.62.0 or newer version, please install 0.5.0.

Usage

You can use the SwipeButtonsContainer to wrap buttons that you want to show when users swipe the item, and pass it to props.

import { SwipeItem, SwipeButtonsContainer, SwipeProvider } from '@faisolp/react-native-swipe-item';

export default function SwipeButtonCustom() {

    const leftButton = (
        <SwipeButtonsContainer
            style={{
                alignSelf: 'center',
                aspectRatio: 1,
                flexDirection: 'column',
                padding: 10,
            }}
            
        >
            <TouchableOpacity
                onPress={() => console.log('left button clicked')}
            >
                <Text>Click me !</Text>
            </TouchableOpacity>
        </SwipeButtonsContainer>
    );
  
    return (
        <SwipeProvider>
            <SwipeItem
                style={styles.button}
                swipeContainerStyle={styles.swipeContentContainerStyle}
                leftButtons={leftButton}
            >
                <Text>
                    Swipe me!
                </Text>
            </SwipeItem>
            <SwipeItem>
                ...
            </SwipeItem>
        </SwipeProvider>
    );
}

const styles = StyleSheet.create({
    button: {
        width: '80%',
        height: 100,
        alignSelf: 'center',
        marginVertical: 5,
    },
    swipeContentContainerStyle: {
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#ffffff',
        borderRadius: 10,
        borderColor: '#e3e3e3',
        borderWidth: 1,
    }
});

Components


SwipeProvider Props

mode

Swipe items mode, default is single.

| TYPE | REQUIRED | | --- | --- | | single | multiple | No |

  • single: only allow one swipe item to be opened. The opened swipe item would be automatically closed when the new swipe item triggers the close event. (see the closeTrigger prop for more detail.)

  • multiple: allow multiple swipe items to be opened.


closeTrigger

The trigger for automatically closed swipe item , only works when the mode prop is single, default is onItemMoved.

| TYPE | REQUIRED | | --- | --- | | onItemMoved | onButtonShowed | No |

  • onItemMoved: when the swipe item is moved, the opened one will be closed.

  • onButtonShowed: when the swipe item button is showing, the opened one will be closed.


SwipeItem Props

style

These styles will be applied to the swipe item layout.

| TYPE | REQUIRED | | --- | --- | | style | No |


swipeContainerStyle

These styles will be applied to the swipe item container which user swipe.

Example:

return (
        <SwipeItem swipeContainerStyle={styles.swipeContentContainerStyle} >
        </SwipeItem>
    );
}

const styles = StyleSheet.create({
    swipeContentContainerStyle: {
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#ffffff',
        borderRadius: 10,
        borderColor: '#e3e3e3',
        borderWidth: 1,
    }
});

| TYPE | REQUIRED | | --- | --- | | style | No |


leftButtons

Buttons that want to show on the left when the item swiped to right.

| TYPE | REQUIRED | | --- | --- | | SwipeButtonsContainer | No |


rightButtons

Buttons that want to show on the right when the item swiped to left.

| TYPE | REQUIRED | | --- | --- | | SwipeButtonsContainer | No |


containerView

The component for the swipe item.

  • Before RN 0.57.0, the child view would be clipped by parent view when the child view layout out of the parent. Recommend to use ViewOverflow plugin to solve this problem.

Example:

import ViewOverflow from 'react-native-view-overflow';
...
...
export default function SwipeButtonCustom() {  
    return (
        <SwipeItem
            style={styles.button}
            swipeContainerStyle={styles.swipeContentContainerStyle}
            containerView={ViewOverflow}
        >
            <Text>
                Swipe me!
            </Text>
        </SwipeItem>
    );
}
...

| TYPE | REQUIRED | PLATFORM | | --- | --- | --- | | ViewOverflow | Yes | Android |


onSwipeInitial

This prop will be called when the item started swipe from the origin position, and the SwipeItem reference passed as an argument.


onLeftButtonsShowed

This prop will be called when left buttons showed, and the SwipeItem reference passed as an argument.


onRightButtonsShowed

This prop will be called when right buttons showed, and the SwipeItem reference passed as an argument.


onMovedToOrigin

This prop will be called when the item moved to the origin, and the SwipeItem reference passed as an argument.


disableSwipeIfNoButton

since v0.4

Disable the swipe feature when there are no buttons.

| TYPE | REQUIRED | | --- | --- | | boolean | No |


swipeThreshold

since v0.7

The swipe item will be opened automatically when the position pass the threshold, and you can set the left and right buttons separately.

| TYPE | REQUIRED | | --- | --- | | { left?: number, right?: number } | No |


disableButtonScale

since v0.7

You can disabled left or right or both button scale when swiping.

| TYPE | REQUIRED | | --- | --- | | { left?: boolean, right?: boolean } | No |


SwipeItem Ref Methods

close

Close the swipe item.

Example:


const itemRef = useRef(null);
...
itemRef.current.close();
...
<SwipeItem ref={itemRef} >
    ...
</SwipeItem>

SwipeButtonsContainer Props

This component extends react-native View props.

License

MIT