feat(ui): finish generation when discarding last item

This commit is contained in:
psychedelicious
2025-06-05 20:03:47 +10:00
parent 23511d68db
commit bc3550f238

View File

@@ -1,12 +1,15 @@
import { IconButton } from '@invoke-ai/ui-library';
import { useStore } from '@nanostores/react';
import { useAppDispatch } from 'app/store/storeHooks';
import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context';
import { canvasSessionGenerationFinished } from 'features/controlLayers/store/canvasStagingAreaSlice';
import { memo, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { PiXBold } from 'react-icons/pi';
import { useDeleteQueueItemMutation } from 'services/api/endpoints/queue';
export const StagingAreaToolbarDiscardSelectedButton = memo(({ isDisabled }: { isDisabled?: boolean }) => {
const dispatch = useAppDispatch();
const ctx = useCanvasSessionContext();
const [deleteQueueItem] = useDeleteQueueItemMutation();
const selectedItemId = useStore(ctx.$selectedItemId);
@@ -17,8 +20,12 @@ export const StagingAreaToolbarDiscardSelectedButton = memo(({ isDisabled }: { i
if (selectedItemId === null) {
return;
}
const itemCount = ctx.$itemCount.get();
deleteQueueItem({ item_id: selectedItemId });
}, [selectedItemId, deleteQueueItem]);
if (itemCount <= 1) {
dispatch(canvasSessionGenerationFinished());
}
}, [selectedItemId, ctx.$itemCount, deleteQueueItem, dispatch]);
return (
<IconButton