From 0d3af08d27dc55b9aced6fd677583ae71333b8b7 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Fri, 4 Jul 2025 19:58:33 +1000 Subject: [PATCH] fix(ui): prompt parsing in useImageActions --- .../features/gallery/hooks/useImageActions.ts | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts b/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts index b6996b3281..9da55ca221 100644 --- a/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts +++ b/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts @@ -40,18 +40,23 @@ export const useImageActions = (imageDTO: ImageDTO | null) => { setHasSeed(false); } + let hasPrompt = false; // Need to catch all of these to avoid unhandled promise rejections bubbling up to instrumented error handlers - const promptParseResults = await Promise.allSettled([ - MetadataHandlers.PositivePrompt.parse(metadata, store).catch(() => {}), - MetadataHandlers.NegativePrompt.parse(metadata, store).catch(() => {}), - MetadataHandlers.PositiveStylePrompt.parse(metadata, store).catch(() => {}), - MetadataHandlers.NegativeStylePrompt.parse(metadata, store).catch(() => {}), - ]); - if (promptParseResults.some((result) => result.status === 'fulfilled')) { - setHasPrompts(true); - } else { - setHasPrompts(false); + for (const handler of [ + MetadataHandlers.PositivePrompt, + MetadataHandlers.NegativePrompt, + MetadataHandlers.PositiveStylePrompt, + MetadataHandlers.NegativeStylePrompt, + ]) { + try { + await handler.parse(metadata, store); + hasPrompt = true; + break; + } catch { + // noop + } } + setHasPrompts(hasPrompt); } else { setHasMetadata(false); setHasSeed(false);