This package has been deprecated

Author message:

Please use @snappmarket/hooks instead

@snappmarket/use-debounce

0.2.5Β β€’Β PublicΒ β€’Β Published

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];
}

Package Sidebar

Install

npm i @snappmarket/use-debounce

Weekly Downloads

1

Version

0.2.5

License

MIT

Unpacked Size

8.21 kB

Total Files

7

Last publish

Collaborators

  • jrjs
  • mahsamesbah
  • milad.kiani
  • mostafa_rastegar
  • rezaerami