4.0.1 • Published 6 months ago

@uplift-ltd/use-interval v4.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@uplift-ltd/use-interval

Installation

npm i --save @uplift-ltd/use-interval

API

useInterval

A hook for setting intervals based on this article.

import { useInterval } from "@uplift-ltd/use-interval";

function MyComponent() {
  useInterval(() => {
    console.log("hii");
  }, 1000);
}

useSyncedInterval

A hook for setting synced intervals. Use this if you have intervals in different parts of the app that should execute at the same time.

import { SyncedIntervalProvider, useSyncedInterval } from "@uplift-ltd/use-interval";

function Root() {
  return (
    <SyncedIntervalProvider defaultDelay={10000}>
      <SomeComponent />
      <OtherComponent />
    </SyncedIntervalProvider>
  );
}

function SomeComponent() {
  useSyncedInterval(
    () => {
      console.log("Ping!");
    },
    1000,
    "optionalChannel"
  );
  return null;
}

function OtherComponent() {
  useSyncedInterval(
    () => {
      console.log("Pong!");
    },
    2000,
    "optionalChannel"
  );
  return null;
}

You can optionally specify a channel to have multiple groups of synced intervals. For example 2 intervals that run every 10s and 3 intervals that run every 2s.

The hook will use the last delay that was mounted, so in the example above it should be 2000 until OtherComponent unmounts, at which point it will become 1000. See below how to specify only callbacks.

The callbacks leverage a ref under the hood, so you technically don't have to use useCallback for the callback, but it is recommended. Changing the delay will cause a re-render.

useSyncedIntervalCallback

Same as useSyncedInterval but without specifying a delay. It will use the last delay specified of the defaultDelay passed to SyncedIntervalProvider.

import { useSyncedIntervalCallback } from "@uplift-ltd/use-interval";

function OtherComponent() {
  useSyncedIntervalCallback(() => {
    console.log("Pong!");
  }, "optionalChannel");
  return null;
}

useSyncedIntervalDelay

Same as useSyncedIntervalCallback but only specifying the delay instead.

import { useSyncedIntervalCallback } from "@uplift-ltd/use-interval";

function OtherComponent() {
  useSyncedIntervalCallback(3000, "optionalChannel");
  return null;
}
3.0.3

9 months ago

4.0.1

6 months ago

4.0.0

6 months ago

4.0.1-alpha.0

6 months ago

4.0.1-alpha.1

6 months ago

3.0.2

1 year ago

4.0.0-alpha.1

1 year ago

4.0.0-alpha.2

1 year ago

4.0.0-alpha.0

1 year ago

3.0.1

1 year ago

3.0.0-alpha.0

1 year ago

3.0.0

1 year ago

2.2.7

1 year ago

2.2.6

1 year ago

2.2.6-alpha.3

1 year ago

2.2.6-alpha.1

1 year ago