New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-native-custom-refresh

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-custom-refresh

react-native-custom-refresh is a highly customizable pull-to-refresh component for React Native, built with Reanimated 2. It provides smooth pull-to-refresh animations with a rotating loader and customizable header text or components. Supports both user-i

latest
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

react-native-custom-refresh

react-native-custom-refresh is a fully customizable pull-to-refresh component for React Native, built with Reanimated 2. It provides smooth pull-to-refresh animations with a rotating loader and supports custom header text or components. It works with both manual user gestures and programmatic refresh triggers.

Features

  • Smooth pull-to-refresh animation using Reanimated 2
  • Rotating and scaling loader with custom image support
  • Default or custom text/component for header
  • Programmatic refresh via the refresh prop
  • Configurable maximum pull distance and trigger fraction
  • Works with nested scroll views using PanResponder
  • Fully customizable styles

Installation

npm install react-native-custom-refresh-control
# or
yarn add react-native-custom-refresh-control

Peer Dependencies

This library requires react-native-reanimated as a peer dependency. Make sure it is installed:

npm install react-native-reanimated
# or
yarn add react-native-reanimated

Usage

Wrap your scrollable content inside ReanimatedRefresh and provide necessary props:

import React, { useState } from "react";
import { View, Text } from "react-native";
import ReanimatedRefresh from "react-native-custom-refresh-control";

const Example = () => {
  const [refreshing, setRefreshing] = useState(false);

  const fetchData = async () => {
    setRefreshing(true);
    // Simulate API call or async operation
    await new Promise((resolve) => setTimeout(resolve, 2000));
    setRefreshing(false);
  };

  return (
    <ReanimatedRefresh
      refresh={refreshing}
      onRefresh={fetchData}
      maxPull={150}
      triggerFraction={0.5}
      headerText="Loading..."
      textComponent={
        <Text style={{ color: "purple", fontWeight: "700" }}>
          Refreshing...
        </Text>
      }
    >
      <View
        style={{
          height: 1000,
          justifyContent: "center",
          alignItems: "center",
        }}
      >
        <Text>Scroll me to refresh!</Text>
      </View>
    </ReanimatedRefresh>
  );
};

export default Example;

Props

PropTypeDefaultDescription
onRefresh() => Promise<void>Callback fired when refresh is triggered.
maxPullnumber150Maximum pull distance to trigger refresh.
triggerFractionnumber0.5Fraction of maxPull to trigger refresh.
gradientColorsstring[]['#FF6A00', '#EE0979', '#FF6A00']Gradient colors for masked text (optional).
loaderSourceImageSourceDefault loader.pngCustom loader image.
headerTextstring'Loading'Default text displayed during refresh.
textComponentReactNodeDefault <Text> with headerTextCustom component for header text.
styleobject{}Custom style for the root container.
refreshbooleanfalseExternal trigger for programmatic refresh.

Keywords

react-native

FAQs

Package last updated on 22 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts