blob: 297a206215fcdc7e22eafe892b4c8932d957f6c8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
type CancelFn = () => void;
const cancellers = new Set<CancelFn>();
export function registerCanceller({ fn }: { fn: CancelFn }): () => void {
cancellers.add(fn);
return () => {
cancellers.delete(fn);
};
}
export function cancelInteraction(): boolean {
if (cancellers.size === 0) return false;
const activeCancellers = Array.from(cancellers);
cancellers.clear();
for (const cancel of activeCancellers) {
cancel();
}
return true;
}
|