blob: 0cb07f4f148407e113a93dcdbb3484835da52049 (
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;
}
|