feat: debounce message draft state updates to reduce zustand/immer store writes on Messages page

This commit is contained in:
Dan Ditomaso
2025-01-25 16:41:42 -05:00
parent fe2b76eeb9
commit d0ca24ae6f
2 changed files with 35 additions and 6 deletions
+13
View File
@@ -0,0 +1,13 @@
type Callback<Args extends unknown[]> = (...args: Args) => void;
export function debounce<Args extends unknown[]>(
callback: Callback<Args>,
wait: number
): Callback<Args> {
let timeoutId: ReturnType<typeof setTimeout>;
return (...args: Args) => {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => callback(...args), wait);
};
}