import type { TextProps } from '@invoke-ai/ui-library'; import { Text } from '@invoke-ai/ui-library'; import { useCanvasSessionContext, useProgressData } from 'features/controlLayers/components/SimpleSession/context'; import { memo } from 'react'; import type { S } from 'services/api/types'; type Props = { item: S['SessionQueueItem'] } & TextProps; export const QueueItemStatusLabel = memo(({ item, ...rest }: Props) => { const ctx = useCanvasSessionContext(); const { progressImage, imageLoaded } = useProgressData(ctx.$progressData, item.item_id); if (progressImage || imageLoaded) { return null; } if (item.status === 'pending') { return ( Pending ); } if (item.status === 'canceled') { return ( Canceled ); } if (item.status === 'failed') { return ( Failed ); } if (item.status === 'in_progress') { return ( In Progress ); } if (item.status === 'completed') { return ( Completed ); } return null; }); QueueItemStatusLabel.displayName = 'QueueItemStatusLabel';