export function debounce(fn, delay = 500) { let timer; return function(...args) { if (timer) { clearTimeout(timer); timer = null; } timer = setTimeout(fn.bind(this, ...args), delay); }; }