31 lines
776 B
TypeScript
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;
|
|
}; |