mirror of https://github.com/mastodon/mastodon
Fix too many requests caused by relationship look-ups in web UI (#32042)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>pull/32081/head^2
parent
f1b6a611aa
commit
70988519df
@ -0,0 +1,23 @@
|
||||
import { debounce } from 'lodash';
|
||||
|
||||
import type { AppDispatch } from 'mastodon/store';
|
||||
|
||||
export const debounceWithDispatchAndArguments = <T>(
|
||||
fn: (dispatch: AppDispatch, ...args: T[]) => void,
|
||||
{ delay = 100 },
|
||||
) => {
|
||||
let argumentBuffer: T[] = [];
|
||||
let dispatchBuffer: AppDispatch;
|
||||
|
||||
const wrapped = debounce(() => {
|
||||
const tmpBuffer = argumentBuffer;
|
||||
argumentBuffer = [];
|
||||
fn(dispatchBuffer, ...tmpBuffer);
|
||||
}, delay);
|
||||
|
||||
return (dispatch: AppDispatch, ...args: T[]) => {
|
||||
dispatchBuffer = dispatch;
|
||||
argumentBuffer.push(...args);
|
||||
wrapped();
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue