* 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
16 lines
487 B
TypeScript
16 lines
487 B
TypeScript
import throttle from 'lodash.throttle';
|
|
import { useCallback, useEffect, useRef } from 'react';
|
|
|
|
export function useThrottle(cb: () => void, delay: number) {
|
|
const options = { leading: true, trailing: false }; // add custom lodash options
|
|
const cbRef = useRef(cb);
|
|
// use mutable ref to make useCallback/throttle not depend on `cb` dep
|
|
useEffect(() => {
|
|
cbRef.current = cb;
|
|
});
|
|
return useCallback(
|
|
throttle(() => cbRef.current(), delay, options),
|
|
[delay],
|
|
);
|
|
}
|