0.1.1 • Published 2 years ago

react-swipe-down-refresh v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

react-swipe-down-refresh

npm version license

Swipe down to refresh or pull-to-refresh control for mobile web applications.

The component is built using composable utilities to give fine grain control over the swipe-refresh behavior. These building blocks could be used independently to build your own swipe-refresh control.

Components and utils

  • SwipeRefreshList—React component with swipe-refresh behavior
  • useSwipeRefresh—React hook that encapsulates the swipe-refresh logic
  • SwipeRefreshCoordinator—UI framework agnostic implementation of the core gesture handling logic

Getting started


To start using react-swipe-down-refresh, install it via NPM

npm i react-swipe-down-refresh

# yarn
yarn add react-swipe-down-refresh

Demo


Try it online


Open in a mobile web-browser or toggle the device mode on a web-browser

Try the app online here.

Usage


Import the SwipeRefreshList component and include the styles provided in the package to get the swipe-refresh behavior. Make sure your build system supports importing .css files.

import { SwipeRefreshList } from "react-swipe-down-refresh";

// include the styles
import "react-swipe-down-refresh/lib/styles.css";

export default function App() {
  const onRefreshRequested = () => {
    return new Promise<void>((resolve) => {
      setTimeout(() => resolve(), 3000);
    });
  };

  return (
    <div>
      <SwipeRefreshList onRefresh={onRefreshRequested}>
        <div className="item">Line 1</div>
        <div className="item">Line 2</div>
        <div className="item">Line 3</div>
      </SwipeRefreshList>
    </div>
  );
}

Props

NameDescriptionRequiredDefault
onRefreshCallback function triggered on refreshtrue-
disabledDisabled pull to refreshfalsefalse
classNameCSS class to attache to the outermost divfalse-

Customization

You can customize the swipe refresh spinner look and behavior via the following the props

NameDescriptionRequiredDefault
thresholdMinimum gesture movement displacement before swipe action is registeredfalsefalse
onEndRefreshCallback function triggered on refresh is completefalsefalse
onStartRefreshCallback function triggered on refresh startfalsefalse
slingshotDistanceThe distance the refresh indicator can be pulled during a swipe gesturefalsefalse
progressViewOffsetThe refresh indicator position during refreshfalsefalse
progressStrokeColorColor of the refresh progress spinnerfalsefalse
getScrollTopOverrideDisabled pull to refreshfalsefalse
overrideBrowserRefreshOverride browser pull to refresh behaviourfalsefalse
progressBackgroundColorBackground color of the progress spinnerfalsefalse

Credits