Skip to content

Commit 0eb0f59

Browse files
committed
use debounced function
1 parent 9899080 commit 0eb0f59

File tree

2 files changed

+21
-37
lines changed

2 files changed

+21
-37
lines changed

client/src/Hooks/useDebouncedEffect.hook.js

Lines changed: 0 additions & 37 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/** @file useDebouncedFunction.hook.js */
2+
import { useEffect, useReducer } from 'react';
3+
4+
/**
5+
* Хук Debounced Function
6+
* @param {void} callback
7+
* @param {number} delayms
8+
*/
9+
function useDebouncedFunction(callback, delayms) {
10+
const [state, debounced] = useReducer(() => {
11+
return { count: state.count++, args: arguments }
12+
}, { count: 0, args: undefined })
13+
useEffect(() => {
14+
const handler = setTimeout(() => callback(state.arguments), delayms)
15+
return () => clearTimeout(handler)
16+
// eslint-disable-next-line react-hooks/exhaustive-deps
17+
}, [state])
18+
return debounced
19+
}
20+
21+
export default useDebouncedFunction

0 commit comments

Comments
 (0)