0.2.5 • Published 4 years ago
@snappmarket/use-debounce v0.2.5
useDebounce
🔂 change rapidly, do once
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-beta.quq9rbw
4 years ago
0.2.3-beta.4cbesil
4 years ago
0.2.3-beta.qaoe83s
4 years ago
0.2.3
4 years ago
0.2.1-beta.cswtgmi
4 years ago
0.2.1-alpha.canary
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