JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7923
  • Score
    100M100P100Q126518F
  • License MIT

Dead simple yet powerful countdown hook for React.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-countdown-hook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    react-countdown-hook

    Dead simple yet powerful countdown hook for React. Powered by requestAnimationFrame.

    Installation

    Using npm:

    $ npm install --save react-countdown-hook

    Using yarn:

    $ yarn add react-countdown-hook

    Quick Start

    import React from 'react';
    import useCountDown from 'react-countdown-hook';
    
    const initialTime = 60 * 1000; // initial time in milliseconds, defaults to 60000
    const interval = 1000; // interval to change remaining time amount, defaults to 1000
    
    const render = () => {
      const [timeLeft, { start, pause, resume, reset }] = useCountDown(initialTime, interval);
      
      // start the timer during the first render
      React.useEffect(() => {
        start();
      }, []);
      
      const restart = React.useCallback(() => {
        // you can start existing timer with an arbitrary value
        // if new value is not passed timer will start with initial value
        const newTime = 42 * 1000;
        start(newTime);
      }, []);
     
      return (
        <>
          <p>Time left: {timeLeft}</p>
     
          <button onClick={restart}>
            Restart counter with 42 seconds
          </button>
        </>
      );
    }

    Note that this is a very basic usage. Check out more usage examples in playground or in the demo project

    Documentation

    [timeLeft, actions] = useCountDown(timeToCount, interval)

    Parameters

    Takes a default countdown time and interval time.

    • timeToCount {Number} Time in milliseconds that countdown should start with. Defaults to 60000
    • interval {Number} Time in milliseconds representing the frequency that countdown should update with. Defaults to 1000

    Return value

    Returns an array with remaining time and actions object.

    • timeLeft {Number} Remaining countdown time in milliseconds
    • actions.start {Function} Start or restart a countdown. Takes time in milliseconds to start with.
    • actions.reset {Function} Resets a countdown to initial state
    • actions.pause {Function} Pauses a countdown
    • actions.resume {Function} Resumes a paused countdown

    Contributing

    Feel free to submit any issues or pull requests.

    License

    MIT