From 2824dba25f44ecb080c3bc37b4ef8c78c7c36ff9 Mon Sep 17 00:00:00 2001 From: pheralb Date: Sun, 26 Jun 2022 16:34:46 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=92=EF=B8=8F=20Add=20useDebounce=20hook.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useDebounce.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/hooks/useDebounce.tsx diff --git a/src/hooks/useDebounce.tsx b/src/hooks/useDebounce.tsx new file mode 100644 index 0000000..27a5bed --- /dev/null +++ b/src/hooks/useDebounce.tsx @@ -0,0 +1,17 @@ +import { useEffect, useState } from "react"; + +function useDebounce(value: T, delay?: number): T { + const [debouncedValue, setDebouncedValue] = useState(value); + + useEffect(() => { + const timer = setTimeout(() => setDebouncedValue(value), delay || 500); + + return () => { + clearTimeout(timer); + }; + }, [value, delay]); + + return debouncedValue; +} + +export default useDebounce;