export function throttle(callback, wait) { let timeoutId = null; let lastExecutedTime = 0; return function (...args) { const currentTime = Date.now(); const execute = () => { lastExecutedTime = currentTime; callback.apply(this, args); }; if (currentTime - lastExecutedTime >= wait) { execute(); } else { clearTimeout(timeoutId); timeoutId = setTimeout(execute, wait - (currentTime - lastExecutedTime)); } }; }