From d037eea42a10c44f935b1f798e25df95302caf2a Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed, 26 Feb 2025 07:22:12 +1000 Subject: [PATCH] feat(ui): debouncedUpdateReasons is async --- .../web/src/features/queue/store/readiness.ts | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/invokeai/frontend/web/src/features/queue/store/readiness.ts b/invokeai/frontend/web/src/features/queue/store/readiness.ts index ae47cbaafc..e0a2471702 100644 --- a/invokeai/frontend/web/src/features/queue/store/readiness.ts +++ b/invokeai/frontend/web/src/features/queue/store/readiness.ts @@ -1,5 +1,6 @@ import { useStore } from '@nanostores/react'; import { createSelector } from '@reduxjs/toolkit'; +import { EMPTY_ARRAY } from 'app/store/constants'; import { createMemoizedSelector } from 'app/store/createMemoizedSelector'; import { $true } from 'app/store/nanostores/util'; import { useAppSelector } from 'app/store/storeHooks'; @@ -64,7 +65,7 @@ export const $reasonsWhyCannotEnqueue = atom([]); export const $isReadyToEnqueue = computed($reasonsWhyCannotEnqueue, (reasons) => reasons.length === 0); const debouncedUpdateReasons = debounce( - ( + async ( tab: TabName, isConnected: boolean, canvas: CanvasState, @@ -82,39 +83,36 @@ const debouncedUpdateReasons = debounce( config: AppConfig ) => { if (tab === 'canvas') { - $reasonsWhyCannotEnqueue.set( - getReasonsWhyCannotEnqueueCanvasTab({ - isConnected, - canvas, - params, - dynamicPrompts, - canvasIsFiltering, - canvasIsTransforming, - canvasIsRasterizing, - canvasIsCompositing, - canvasIsSelectingObject, - }) - ); + const reasons = await getReasonsWhyCannotEnqueueCanvasTab({ + isConnected, + canvas, + params, + dynamicPrompts, + canvasIsFiltering, + canvasIsTransforming, + canvasIsRasterizing, + canvasIsCompositing, + canvasIsSelectingObject, + }); + $reasonsWhyCannotEnqueue.set(reasons); } else if (tab === 'workflows') { - $reasonsWhyCannotEnqueue.set( - getReasonsWhyCannotEnqueueWorkflowsTab({ - isConnected, - nodes, - workflowSettings, - templates, - }) - ); + const reasons = getReasonsWhyCannotEnqueueWorkflowsTab({ + isConnected, + nodes, + workflowSettings, + templates, + }); + $reasonsWhyCannotEnqueue.set(reasons); } else if (tab === 'upscaling') { - $reasonsWhyCannotEnqueue.set( - getReasonsWhyCannotEnqueueUpscaleTab({ - isConnected, - upscale, - config, - params, - }) - ); + const reasons = getReasonsWhyCannotEnqueueUpscaleTab({ + isConnected, + upscale, + config, + params, + }); + $reasonsWhyCannotEnqueue.set(reasons); } else { - $reasonsWhyCannotEnqueue.set([]); + $reasonsWhyCannotEnqueue.set(EMPTY_ARRAY); } }, 300