initial commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
type TaskHandle = number
|
||||
|
||||
export const useTasks = () => {
|
||||
const taskQueue = useState<Set<number>>('spinner:taskQueue', () => new Set())
|
||||
const taskId = useState<number>('spinner:taskId', () => 1)
|
||||
const hasTasks = computed(() => taskQueue.value.size > 0)
|
||||
|
||||
const addTask = (): TaskHandle => {
|
||||
const handle = taskId.value++
|
||||
taskQueue.value = new Set(taskQueue.value).add(handle)
|
||||
return handle
|
||||
}
|
||||
|
||||
const completeTask = (handle: TaskHandle) => {
|
||||
const newSet = new Set(taskQueue.value)
|
||||
newSet.delete(handle)
|
||||
taskQueue.value = newSet
|
||||
}
|
||||
|
||||
return { hasTasks, addTask, completeTask }
|
||||
}
|
||||
Reference in New Issue
Block a user