Files

31 lines
776 B
TypeScript

interface PendingRename {
topicId: string;
abortController: AbortController;
}
const pendingRenames: Map<string, AbortController> = new Map();
export const cancelPendingRename = (topicId: string) => {
const pendingRename = pendingRenames.get(topicId);
if (pendingRename) {
pendingRename.abort();
pendingRenames.delete(topicId);
return true;
}
return false;
};
export const completeRename = (topicId: string) => {
const controller = pendingRenames.get(topicId);
if (controller) {
pendingRenames.delete(topicId);
}
};
export const addPendingRename = (topicId: string) => {
const abortController = new AbortController();
pendingRenames.set(topicId, abortController);
return abortController;
};