mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-09 17:40:09 +00:00
[Manager] Allow multiple queued callbacks in manager task queue hook (#3027)
This commit is contained in:
@@ -20,8 +20,9 @@ import {
|
||||
export const useComfyManagerStore = defineStore('comfyManager', () => {
|
||||
const managerService = useComfyManagerService()
|
||||
const installedPacks = ref<InstalledPacksResponse>({})
|
||||
const enabledPacks = ref<Set<string>>(new Set())
|
||||
const disabledPacks = ref<Set<string>>(new Set())
|
||||
const enabledPacksIds = ref<Set<string>>(new Set())
|
||||
const disabledPacksIds = ref<Set<string>>(new Set())
|
||||
const installedPacksIds = ref<Set<string>>(new Set())
|
||||
const isStale = ref(true)
|
||||
|
||||
const { statusMessage, allTasksDone, enqueueTask } = useManagerQueue()
|
||||
@@ -30,14 +31,6 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
|
||||
isStale.value = true
|
||||
}
|
||||
|
||||
const isPackInstalled = (packName: string | undefined): boolean => {
|
||||
if (!packName) return false
|
||||
return !!installedPacks.value[packName] || disabledPacks.value.has(packName)
|
||||
}
|
||||
|
||||
const isPackEnabled = (packName: string | undefined): boolean =>
|
||||
!!packName && enabledPacks.value.has(packName)
|
||||
|
||||
/**
|
||||
* A pack is disabled if there is a disabled entry and no corresponding enabled entry
|
||||
* @example
|
||||
@@ -52,9 +45,17 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
|
||||
* }
|
||||
* isDisabled("packname") // true
|
||||
*/
|
||||
const isPackDisabled = (pack: ManagerPackInstalled) =>
|
||||
const isDisabledPack = (pack: ManagerPackInstalled) =>
|
||||
pack.enabled === false && pack.cnr_id && !installedPacks.value[pack.cnr_id]
|
||||
|
||||
const isInstalledPackId = (packName: string | undefined): boolean =>
|
||||
!!packName && installedPacksIds.value.has(packName)
|
||||
|
||||
const isEnabledPackId = (packName: string | undefined): boolean =>
|
||||
!!packName &&
|
||||
isInstalledPackId(packName) &&
|
||||
enabledPacksIds.value.has(packName)
|
||||
|
||||
const packsToIdSet = (packs: ManagerPackInstalled[]) =>
|
||||
packs.reduce((acc, pack) => {
|
||||
const id = pack.cnr_id || pack.aux_id
|
||||
@@ -64,15 +65,16 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
|
||||
|
||||
watchEffect(() => {
|
||||
const packs = Object.values(installedPacks.value)
|
||||
const [disabled, enabled] = partition(packs, isPackDisabled)
|
||||
enabledPacks.value = packsToIdSet(enabled)
|
||||
disabledPacks.value = packsToIdSet(disabled)
|
||||
const [disabled, enabled] = partition(packs, isDisabledPack)
|
||||
enabledPacksIds.value = packsToIdSet(enabled)
|
||||
disabledPacksIds.value = packsToIdSet(disabled)
|
||||
installedPacksIds.value = packsToIdSet(packs)
|
||||
})
|
||||
|
||||
const refreshInstalledList = async () => {
|
||||
isStale.value = false
|
||||
const packs = await managerService.listInstalledPacks()
|
||||
if (packs) installedPacks.value = packs
|
||||
isStale.value = false
|
||||
}
|
||||
|
||||
whenever(isStale, refreshInstalledList, { immediate: true })
|
||||
@@ -136,8 +138,8 @@ export const useComfyManagerStore = defineStore('comfyManager', () => {
|
||||
|
||||
// Installed packs state
|
||||
installedPacks,
|
||||
isPackInstalled,
|
||||
isPackEnabled,
|
||||
isPackInstalled: isInstalledPackId,
|
||||
isPackEnabled: isEnabledPackId,
|
||||
|
||||
// Pack actions
|
||||
installPack,
|
||||
|
||||
Reference in New Issue
Block a user