UNPKG

@figliolia/react-hooks

Version:

A small collection of simple React Hooks you're probably rewriting on a regular basis

36 lines (35 loc) 953 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FloatingTaskManager = void 0; class FloatingTaskManager { constructor(schedule, cancel) { this.tokens = new Set(); this.schedule = schedule.bind(globalThis); this.cancel = cancel.bind(globalThis); } execute(...args) { const [fn, ...rest] = args; const token = this.schedule( // @ts-ignore (...params) => { fn(...params); }, ...rest); this.tokens.add(token); return () => { this.clear(token); }; } abortAll() { for (const token of this.tokens) { this.cancel(token); } this.tokens.clear(); } clear(token) { if (token && this.tokens.has(token)) { this.cancel(token); this.tokens.delete(token); } } } exports.FloatingTaskManager = FloatingTaskManager;