mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-02-13 03:45:33 -05:00
feat(ui): finish generation when discarding last item
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user