diff --git a/invokeai/frontend/web/src/features/queue/components/CancelAllExceptCurrentButton.tsx b/invokeai/frontend/web/src/features/queue/components/CancelAllExceptCurrentButton.tsx new file mode 100644 index 0000000000..e804176511 --- /dev/null +++ b/invokeai/frontend/web/src/features/queue/components/CancelAllExceptCurrentButton.tsx @@ -0,0 +1,28 @@ +import type { ButtonProps } from '@invoke-ai/ui-library'; +import { Button } from '@invoke-ai/ui-library'; +import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog'; +import { memo } from 'react'; +import { useTranslation } from 'react-i18next'; +import { PiXCircle } from 'react-icons/pi'; + +export const CancelAllExceptCurrentButton = memo((props: ButtonProps) => { + const { t } = useTranslation(); + const api = useCancelAllExceptCurrentQueueItemDialog(); + + return ( + + ); +}); + +CancelAllExceptCurrentButton.displayName = 'CancelAllExceptCurrentButton'; diff --git a/invokeai/frontend/web/src/features/queue/components/DeleteAllExceptCurrentButton.tsx b/invokeai/frontend/web/src/features/queue/components/DeleteAllExceptCurrentButton.tsx deleted file mode 100644 index a3ffd7d519..0000000000 --- a/invokeai/frontend/web/src/features/queue/components/DeleteAllExceptCurrentButton.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { ButtonProps } from '@invoke-ai/ui-library'; -import { Button } from '@invoke-ai/ui-library'; -import { useDeleteAllExceptCurrentQueueItemDialog } from 'features/queue/components/DeleteAllExceptCurrentQueueItemConfirmationAlertDialog'; -import { memo } from 'react'; -import { useTranslation } from 'react-i18next'; -import { PiXCircle } from 'react-icons/pi'; - -type Props = ButtonProps; - -export const DeleteAllExceptCurrentButton = memo((props: Props) => { - const { t } = useTranslation(); - const deleteAllExceptCurrent = useDeleteAllExceptCurrentQueueItemDialog(); - - return ( - <> - - - ); -}); - -DeleteAllExceptCurrentButton.displayName = 'DeleteAllExceptCurrentButton'; diff --git a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemComponent.tsx b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemComponent.tsx index 1f6cea985a..3f39c5e8be 100644 --- a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemComponent.tsx +++ b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemComponent.tsx @@ -3,7 +3,7 @@ import { Badge, ButtonGroup, Collapse, Flex, IconButton, Text } from '@invoke-ai import QueueStatusBadge from 'features/queue/components/common/QueueStatusBadge'; import { useDestinationText } from 'features/queue/components/QueueList/useDestinationText'; import { useOriginText } from 'features/queue/components/QueueList/useOriginText'; -import { useDeleteQueueItem } from 'features/queue/hooks/useDeleteQueueItem'; +import { useCancelQueueItem } from 'features/queue/hooks/useCancelQueueItem'; import { useRetryQueueItem } from 'features/queue/hooks/useRetryQueueItem'; import { getSecondsFromTimestamps } from 'features/queue/util/getSecondsFromTimestamps'; import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus'; @@ -38,13 +38,13 @@ const QueueItemComponent = ({ index, item, context }: InnerItemProps) => { const handleToggle = useCallback(() => { context.toggleQueueItem(item.item_id); }, [context, item.item_id]); - const deleteQueueItem = useDeleteQueueItem(); - const onClickDeleteQueueItem = useCallback( + const cancelQueueItem = useCancelQueueItem(); + const onClickCancelQueueItem = useCallback( (e: MouseEvent) => { e.stopPropagation(); - deleteQueueItem.trigger(item.item_id); + cancelQueueItem.trigger(item.item_id); }, - [deleteQueueItem, item.item_id] + [cancelQueueItem, item.item_id] ); const retryQueueItem = useRetryQueueItem(); const onClickRetryQueueItem = useCallback( @@ -135,9 +135,9 @@ const QueueItemComponent = ({ index, item, context }: InnerItemProps) => { {(!isFailed || !isRetryEnabled || isValidationRun) && ( } /> diff --git a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemDetail.tsx b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemDetail.tsx index c8a8d6992e..329fe1d4eb 100644 --- a/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemDetail.tsx +++ b/invokeai/frontend/web/src/features/queue/components/QueueList/QueueItemDetail.tsx @@ -5,7 +5,7 @@ import { useDestinationText } from 'features/queue/components/QueueList/useDesti import { useOriginText } from 'features/queue/components/QueueList/useOriginText'; import { useBatchIsCanceled } from 'features/queue/hooks/useBatchIsCanceled'; import { useCancelBatch } from 'features/queue/hooks/useCancelBatch'; -import { useDeleteQueueItem } from 'features/queue/hooks/useDeleteQueueItem'; +import { useCancelQueueItem } from 'features/queue/hooks/useCancelQueueItem'; import { useRetryQueueItem } from 'features/queue/hooks/useRetryQueueItem'; import { getSecondsFromTimestamps } from 'features/queue/util/getSecondsFromTimestamps'; import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus'; @@ -13,20 +13,22 @@ import type { ReactNode } from 'react'; import { memo, useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { PiArrowCounterClockwiseBold, PiXBold } from 'react-icons/pi'; +import { useGetQueueItemQuery } from 'services/api/endpoints/queue'; import type { S } from 'services/api/types'; type Props = { queueItem: S['SessionQueueItem']; }; -const QueueItemComponent = ({ queueItem }: Props) => { - const { session_id, batch_id, item_id, origin, destination } = queueItem; +const QueueItemComponent = ({ queueItem: queueItemDTO }: Props) => { + const { session_id, batch_id, item_id, origin, destination } = queueItemDTO; const { t } = useTranslation(); const isRetryEnabled = useFeatureStatus('retryQueueItem'); const isBatchCanceled = useBatchIsCanceled(batch_id); const cancelBatch = useCancelBatch(); - const deleteQueueItem = useDeleteQueueItem(); + const cancelQueueItem = useCancelQueueItem(); const retryQueueItem = useRetryQueueItem(); + const { data: queueItem } = useGetQueueItemQuery(item_id); const originText = useOriginText(origin); const destinationText = useDestinationText(destination); @@ -57,8 +59,8 @@ const QueueItemComponent = ({ queueItem }: Props) => { }, [cancelBatch, batch_id]); const onCancelQueueItem = useCallback(() => { - deleteQueueItem.trigger(item_id); - }, [deleteQueueItem, item_id]); + cancelQueueItem.trigger(item_id); + }, [cancelQueueItem, item_id]); const onRetryQueueItem = useCallback(() => { retryQueueItem.trigger(item_id); @@ -85,8 +87,8 @@ const QueueItemComponent = ({ queueItem }: Props) => { {(!isFailed || !isRetryEnabled) && (