aboutsummaryrefslogtreecommitdiff
path: root/lib/hooks/useDebounce.js
diff options
context:
space:
mode:
authorFactiven <[email protected]>2023-09-13 00:45:53 +0700
committerGitHub <[email protected]>2023-09-13 00:45:53 +0700
commit7327a69b55a20b99b14ee0803d6cf5f8b88c45ef (patch)
treecbcca777593a8cc4b0282e7d85a6fc51ba517e25 /lib/hooks/useDebounce.js
parentUpdate issue templates (diff)
downloadmoopa-7327a69b55a20b99b14ee0803d6cf5f8b88c45ef.tar.xz
moopa-7327a69b55a20b99b14ee0803d6cf5f8b88c45ef.zip
Update v4 - Merge pre-push to main (#71)
* Create build-test.yml * initial v4 commit * update: github workflow * update: push on branch * Update .github/ISSUE_TEMPLATE/bug_report.md * configuring next.config.js file
Diffstat (limited to 'lib/hooks/useDebounce.js')
-rw-r--r--lib/hooks/useDebounce.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/hooks/useDebounce.js b/lib/hooks/useDebounce.js
new file mode 100644
index 0000000..e3a1631
--- /dev/null
+++ b/lib/hooks/useDebounce.js
@@ -0,0 +1,17 @@
+import { useEffect, useState } from "react";
+
+export default function useDebounce(value, delay) {
+ const [debounceValue, setDebounceValue] = useState(value);
+
+ useEffect(() => {
+ const timeoutId = setTimeout(() => {
+ setDebounceValue(value);
+ }, delay);
+
+ return () => {
+ clearTimeout(timeoutId);
+ };
+ }, [value, delay]);
+
+ return debounceValue;
+}