Refactor debounce and tauri event listeners

This commit is contained in:
Gregory Schier
2023-04-01 21:39:46 -07:00
parent 15c22d98c6
commit b0d8908724
11 changed files with 154 additions and 137 deletions

View File

@@ -1,13 +1,8 @@
import { useEffect, useRef, useState } from 'react';
export function useDebouncedValue<T extends string | number>(value: T, delay = 1000) {
const [state, setState] = useState<T>(value);
const timeout = useRef<NodeJS.Timeout>();
useEffect(() => {
clearTimeout(timeout.current ?? 0);
timeout.current = setTimeout(() => setState(value), delay);
}, [value, delay]);
import { useEffect } from 'react';
import { useDebouncedSetState } from './useDebouncedSetState';
export function useDebouncedValue<T extends string | number>(value: T, delay?: number) {
const [state, setState] = useDebouncedSetState<T>(value, delay);
useEffect(() => setState(value), [setState, value]);
return state;
}