From c8bbfcde3e683f1b451a10fd4175837fb69c38c0 Mon Sep 17 00:00:00 2001 From: Tormen Rassmann Date: Fri, 30 Sep 2022 23:14:01 +0200 Subject: [PATCH 1/2] fix: better type, make it node safe --- src/useDebounce.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/useDebounce.ts b/src/useDebounce.ts index 211256d..b8ec30c 100644 --- a/src/useDebounce.ts +++ b/src/useDebounce.ts @@ -2,20 +2,21 @@ import { useCallback, useRef } from 'react'; const DEFAULT_TIMEOUT = 250; -export type Debounce = (callback: () => unknown) => unknown; +type Callback = () => void; +export type Debounce = (callback: Callback) => void; -export type UseDebounce = (timeout?: number) => Debounce; +type UseDebounce = (timeout?: number) => Debounce; const useDebounce: UseDebounce = (timeout = DEFAULT_TIMEOUT) => { - const timeoutRef = useRef(0); + const timeoutRef = useRef>(); return useCallback( - (callback) => { + (callback: Callback) => { if (timeoutRef.current) { - window.clearTimeout(timeoutRef.current); + clearTimeout(timeoutRef.current); } - timeoutRef.current = window.setTimeout(callback, timeout); + timeoutRef.current = setTimeout(callback, timeout); }, [timeoutRef, timeout] ); From 8c4eaa53dce08a14d13b835727f5bec212293ffa Mon Sep 17 00:00:00 2001 From: Tormen Rassmann Date: Fri, 30 Sep 2022 23:16:38 +0200 Subject: [PATCH 2/2] chore: export UseDebounce --- src/useDebounce.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/useDebounce.ts b/src/useDebounce.ts index b8ec30c..7b0ce9a 100644 --- a/src/useDebounce.ts +++ b/src/useDebounce.ts @@ -5,7 +5,7 @@ const DEFAULT_TIMEOUT = 250; type Callback = () => void; export type Debounce = (callback: Callback) => void; -type UseDebounce = (timeout?: number) => Debounce; +export type UseDebounce = (timeout?: number) => Debounce; const useDebounce: UseDebounce = (timeout = DEFAULT_TIMEOUT) => { const timeoutRef = useRef>();