Files
desktop/app/hooks/useQueue.ts
rosetta 83f38dc63f 'init'
2026-01-30 05:01:05 +02:00

27 lines
570 B
TypeScript

import { useRef } from "react";
/**
* Нужно, чтобы избежать состояния гонки
*/
export function useQueue<T>() {
const queue = useRef<T[]>([]);
const inProcess = (task: T): boolean => {
return queue.current.includes(task);
}
const addToQueue = (task: T) => {
queue.current.push(task);
}
const removeFromQueue = (task: T) => {
queue.current = queue.current.filter(t => t !== task);
}
return {
inProcess,
addToQueue,
removeFromQueue,
queue
}
}