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

@noeg/usepolling

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@noeg/usepolling

React hooks to fetch data with polling

latest
Source
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

usePolling

A React hook for implementing polling functionality with configurable intervals, conditions, and callbacks.

Installation

npm install @noeg/usepolling
# or
yarn add @noeg/usepolling
# or
pnpm add @noeg/usepolling

Features

  • 🔄 Automatic polling with configurable intervals
  • ⏱️ Customizable polling conditions
  • 🎯 Success and error callbacks
  • ⚡ Immediate or delayed start options
  • 🛑 Manual control over polling (start/stop)
  • 💪 TypeScript support

Usage

import { usePolling } from '@noeg/usepolling'

function MyComponent() {
  const { data, error, isLoading, startPolling, stopPolling } = usePolling({
    // Required: Function that returns a Promise
    fetcher: async () => {
      const response = await fetch('https://api.example.com/data')
      return response.json()
    },

    // Optional: Polling interval in milliseconds (default: 5000)
    interval: 3000,

    // Optional: Condition to stop polling (default: () => false)
    condition: (data) => data.status === 'completed',

    // Optional: Success callback
    onSuccess: (data) => {
      console.log('Data received:', data)
    },

    // Optional: Error callback
    onError: (error) => {
      console.error('Polling failed:', error)
    },

    // Optional: Start polling immediately (default: true)
    immediate: true,
  })

  if (isLoading) {
    return <div>Loading...</div>
  }

  if (error) {
    return <div>Error: {error.message}</div>
  }

  return (
    <div>
      <pre>{JSON.stringify(data, null, 2)}</pre>
      <button onClick={startPolling}>Start Polling</button>
      <button onClick={stopPolling}>Stop Polling</button>
    </div>
  )
}

API Reference

Options

OptionTypeRequiredDefaultDescription
fetcher() => Promise<T>Yes-Async function that fetches data
intervalnumberNo5000Polling interval in milliseconds
condition(data: T) => booleanNo() => falseFunction to determine when to stop polling
onSuccess(data: T) => voidNo-Callback function called on successful fetch
onError(error: Error) => voidNo-Callback function called on fetch error
immediatebooleanNotrueWhether to start polling immediately

Return Value

PropertyTypeDescription
dataT | nullThe latest data received from the fetcher
errorError | nullError object if the last fetch failed
isLoadingbooleanWhether a fetch is in progress
startPolling() => voidFunction to manually start polling
stopPolling() => voidFunction to manually stop polling

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Keywords

react

FAQs

Package last updated on 30 Jan 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