@kobalte/core
Version:
Unstyled components and primitives for building accessible web apps and design systems with SolidJS.
22 lines (20 loc) • 551 B
text/typescript
/*
* Executes timeout callback after a set time
*/
export const DebouncerTimeout = () => {
let _debounceMillisecond = 0;
let lastCallbackTime = 0;
let timeout: NodeJS.Timeout;
return {
debounce: (callback: () => void) => {
if (lastCallbackTime > Date.now() - _debounceMillisecond)
clearTimeout(timeout);
timeout = setTimeout(callback, _debounceMillisecond);
lastCallbackTime = Date.now();
return timeout;
},
setDebounceMillisecond: (debounceMillisecond = 0) => {
_debounceMillisecond = debounceMillisecond;
},
};
};