diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewFull.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewFull.tsx index 029ad29454..ba45a9f2ba 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewFull.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewFull.tsx @@ -1,11 +1,12 @@ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Flex } from '@invoke-ai/ui-library'; +import { useOutputImageDTO } from 'features/controlLayers/components/SimpleSession/context'; import { ImageActions } from 'features/controlLayers/components/SimpleSession/ImageActions'; import { QueueItemCircularProgress } from 'features/controlLayers/components/SimpleSession/QueueItemCircularProgress'; import { QueueItemNumber } from 'features/controlLayers/components/SimpleSession/QueueItemNumber'; import { QueueItemProgressImage } from 'features/controlLayers/components/SimpleSession/QueueItemProgressImage'; import { QueueItemStatusLabel } from 'features/controlLayers/components/SimpleSession/QueueItemStatusLabel'; -import { getQueueItemElementId, useOutputImageDTO } from 'features/controlLayers/components/SimpleSession/shared'; +import { getQueueItemElementId } from 'features/controlLayers/components/SimpleSession/shared'; import { DndImage } from 'features/dnd/DndImage'; import { memo, useCallback, useState } from 'react'; import type { S } from 'services/api/types'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewMini.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewMini.tsx index 5851178b0f..cd69cd1bdb 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewMini.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemPreviewMini.tsx @@ -1,11 +1,11 @@ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Flex } from '@invoke-ai/ui-library'; -import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; +import { useCanvasSessionContext, useOutputImageDTO } from 'features/controlLayers/components/SimpleSession/context'; import { QueueItemCircularProgress } from 'features/controlLayers/components/SimpleSession/QueueItemCircularProgress'; import { QueueItemNumber } from 'features/controlLayers/components/SimpleSession/QueueItemNumber'; import { QueueItemProgressImage } from 'features/controlLayers/components/SimpleSession/QueueItemProgressImage'; import { QueueItemStatusLabel } from 'features/controlLayers/components/SimpleSession/QueueItemStatusLabel'; -import { getQueueItemElementId, useOutputImageDTO } from 'features/controlLayers/components/SimpleSession/shared'; +import { getQueueItemElementId } from 'features/controlLayers/components/SimpleSession/shared'; import { DndImage } from 'features/dnd/DndImage'; import { memo, useCallback, useState } from 'react'; import type { S } from 'services/api/types'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx index 0f79457f0d..7529c6995d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx @@ -485,3 +485,13 @@ export const useCanvasSessionContext = () => { assert(ctx !== null, "'useCanvasSessionContext' must be used within a CanvasSessionContextProvider"); return ctx; }; + +export const useOutputImageDTO = (item: S['SessionQueueItem']) => { + const ctx = useCanvasSessionContext(); + const $imageDTO = useState(() => + computed([ctx.$progressData], (progressData) => progressData[item.item_id]?.imageDTO ?? null) + )[0]; + const imageDTO = useStore($imageDTO); + + return imageDTO; +}; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/shared.ts b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/shared.ts index c0eee11713..0026b2a3fa 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/shared.ts +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/shared.ts @@ -1,10 +1,6 @@ -import { useStore } from '@nanostores/react'; -import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; import { isImageField } from 'features/nodes/types/common'; import { isCanvasOutputNodeId } from 'features/nodes/util/graph/graphBuilderUtils'; import { round } from 'lodash-es'; -import { computed } from 'nanostores'; -import { useState } from 'react'; import type { S } from 'services/api/types'; import { objectEntries } from 'tsafe'; @@ -42,13 +38,3 @@ export const getOutputImageName = (item: S['SessionQueueItem']) => { return null; }; - -export const useOutputImageDTO = (item: S['SessionQueueItem']) => { - const ctx = useCanvasSessionContext(); - const $imageDTO = useState(() => - computed([ctx.$progressData], (progressData) => progressData[item.item_id]?.imageDTO ?? null) - )[0]; - const imageDTO = useStore($imageDTO); - - return imageDTO; -};