TelegramPWA/src/util/requestActionTimeout.ts
2025-06-04 20:36:48 +02:00

17 lines
561 B
TypeScript

import { getActions } from '../global';
import type { CallbackAction } from '../global/types';
const callbacks = new Map<string, number>();
// TODO Pass callbacks to the master tab. Sync them on master change
export default function requestActionTimeout(action: CallbackAction, timeout: number) {
const name = action.action;
clearTimeout(callbacks.get(name));
const timerId = window.setTimeout(() => {
// @ts-expect-error -- No idea how to properly type this
getActions()[name](action.payload);
}, timeout);
callbacks.set(name, timerId);
}