feat: dashboard v2, esm, upgrades (#211)
* esm * wip * wip * wip * wip * wip * wip * subscription notice * wip * wip * wip * fix envs * fix: update docker build * fix * esm/types * delete dashboard :D * add patches to dockerfiles * update packages + catalogs + ts * wip * remove native libs * ts * improvements * fix redirects and fetching session * try fix favicon * fixes * fix * order and resize reportds within a dashboard * improvements * wip * added userjot to dashboard * fix * add op * wip * different cache key * improve date picker * fix table * event details loading * redo onboarding completely * fix login * fix * fix * extend session, billing and improve bars * fix * reduce price on 10M
This commit is contained in:
committed by
GitHub
parent
436e81ecc9
commit
81a7e5d62e
28
apps/start/src/hooks/use-debounced-callback.ts
Normal file
28
apps/start/src/hooks/use-debounced-callback.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import { useCallbackRef } from '@/hooks/use-callback-ref';
|
||||
|
||||
export function useDebouncedCallback<T extends (...args: never[]) => unknown>(
|
||||
callback: T,
|
||||
delay: number,
|
||||
) {
|
||||
const handleCallback = useCallbackRef(callback);
|
||||
const debounceTimerRef = React.useRef(0);
|
||||
React.useEffect(
|
||||
() => () => window.clearTimeout(debounceTimerRef.current),
|
||||
[],
|
||||
);
|
||||
|
||||
const setValue = React.useCallback(
|
||||
(...args: Parameters<T>) => {
|
||||
window.clearTimeout(debounceTimerRef.current);
|
||||
debounceTimerRef.current = window.setTimeout(
|
||||
() => handleCallback(...args),
|
||||
delay,
|
||||
);
|
||||
},
|
||||
[handleCallback, delay],
|
||||
);
|
||||
|
||||
return setValue;
|
||||
}
|
||||
Reference in New Issue
Block a user