0.2.5 • Published 4 years ago

@snappmarket/use-debounce v0.2.5

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

useDebounce

🔂 change rapidly, do once

version downloads PRs Welcome MIT License

Watch on GitHub Star on GitHub

get started

We provide two way of using this package single or multi :

npm i @snappmarket/use-debounce
OR
npm i @snappmarket/hooks

usage

import useDebounce from '@snappmarket/use-debounce';
// or 
// import { useDebounce } from '@snappmarket/hooks';


const MyComponenet = props => {
    const [value, setValue] = useState('');
    const [debouncedValue] = useDebounce(value, 200);


  /**
   * Call api based on debounced value
   */
  useEffect(() => {
    // do something with debounce
  }, [debouncedValue]);
};

source code

import { useState, useEffect } from 'react';

/**
 * Debounce setting a value
 * @param value
 * @param delay
 * @returns {[string, fn, fn]}
 */
export default function useDebounce(value, delay) {
  // State and setters for debounced value
  const [debouncedValue, setDebouncedValue] = useState(value);

  let handler;
  const canceller = () => {
    clearTimeout(handler);
  };

  useEffect(() => {
    handler = setTimeout(() => {
      setDebouncedValue(value);
    }, delay);
    return canceller;
  }, [value]);

  return [debouncedValue, canceller, setDebouncedValue];
}
0.2.5

4 years ago

0.2.3

4 years ago

0.2.1-alpha.0

4 years ago

0.1.24

4 years ago

0.1.22

4 years ago

0.1.21

4 years ago

0.1.20

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.13

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago