mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): remove clear queue ui components
This commit is contained in:
@@ -1,28 +1,17 @@
|
|||||||
import { IconButton, useShiftModifier } from '@invoke-ai/ui-library';
|
import { IconButton, useShiftModifier } from '@invoke-ai/ui-library';
|
||||||
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
||||||
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
||||||
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { PiTrashSimpleBold, PiXBold, PiXCircle } from 'react-icons/pi';
|
import { PiXBold, PiXCircle } from 'react-icons/pi';
|
||||||
|
|
||||||
import { useClearQueueDialog } from './ClearQueueConfirmationAlertDialog';
|
|
||||||
|
|
||||||
export const ClearQueueIconButton = memo(() => {
|
export const ClearQueueIconButton = memo(() => {
|
||||||
const isCancelAndClearAllEnabled = useFeatureStatus('cancelAndClearAll');
|
|
||||||
const shift = useShiftModifier();
|
const shift = useShiftModifier();
|
||||||
|
|
||||||
if (!shift) {
|
if (!shift) {
|
||||||
// Shift is not pressed - show cancel current
|
|
||||||
return <CancelCurrentIconButton />;
|
return <CancelCurrentIconButton />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCancelAndClearAllEnabled) {
|
|
||||||
// Shift is pressed and cancel and clear all is enabled - show cancel and clear all
|
|
||||||
return <CancelAndClearAllIconButton />;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shift is pressed and cancel and clear all is disabled - show cancel all except current
|
|
||||||
return <CancelAllExceptCurrentIconButton />;
|
return <CancelAllExceptCurrentIconButton />;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -48,26 +37,6 @@ const CancelCurrentIconButton = memo(() => {
|
|||||||
|
|
||||||
CancelCurrentIconButton.displayName = 'CancelCurrentIconButton';
|
CancelCurrentIconButton.displayName = 'CancelCurrentIconButton';
|
||||||
|
|
||||||
const CancelAndClearAllIconButton = memo(() => {
|
|
||||||
const { t } = useTranslation();
|
|
||||||
const clearQueue = useClearQueueDialog();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<IconButton
|
|
||||||
size="lg"
|
|
||||||
isDisabled={clearQueue.isDisabled}
|
|
||||||
isLoading={clearQueue.isLoading}
|
|
||||||
aria-label={t('queue.clear')}
|
|
||||||
tooltip={t('queue.clearTooltip')}
|
|
||||||
icon={<PiTrashSimpleBold />}
|
|
||||||
colorScheme="error"
|
|
||||||
onClick={clearQueue.openDialog}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
CancelAndClearAllIconButton.displayName = 'CancelAndClearAllIconButton';
|
|
||||||
|
|
||||||
const CancelAllExceptCurrentIconButton = memo(() => {
|
const CancelAllExceptCurrentIconButton = memo(() => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { IconButton, Menu, MenuButton, MenuGroup, MenuItem, MenuList } from '@in
|
|||||||
import { useAppDispatch } from 'app/store/storeHooks';
|
import { useAppDispatch } from 'app/store/storeHooks';
|
||||||
import { SessionMenuItems } from 'common/components/SessionMenuItems';
|
import { SessionMenuItems } from 'common/components/SessionMenuItems';
|
||||||
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
||||||
import { useClearQueueDialog } from 'features/queue/components/ClearQueueConfirmationAlertDialog';
|
|
||||||
import { QueueCountBadge } from 'features/queue/components/QueueCountBadge';
|
import { QueueCountBadge } from 'features/queue/components/QueueCountBadge';
|
||||||
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
||||||
import { usePauseProcessor } from 'features/queue/hooks/usePauseProcessor';
|
import { usePauseProcessor } from 'features/queue/hooks/usePauseProcessor';
|
||||||
@@ -11,15 +10,7 @@ import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
|||||||
import { setActiveTab } from 'features/ui/store/uiSlice';
|
import { setActiveTab } from 'features/ui/store/uiSlice';
|
||||||
import { memo, useCallback, useRef } from 'react';
|
import { memo, useCallback, useRef } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import { PiListBold, PiPauseFill, PiPlayFill, PiQueueBold, PiXBold, PiXCircle } from 'react-icons/pi';
|
||||||
PiListBold,
|
|
||||||
PiPauseFill,
|
|
||||||
PiPlayFill,
|
|
||||||
PiQueueBold,
|
|
||||||
PiTrashSimpleBold,
|
|
||||||
PiXBold,
|
|
||||||
PiXCircle,
|
|
||||||
} from 'react-icons/pi';
|
|
||||||
|
|
||||||
export const QueueActionsMenuButton = memo(() => {
|
export const QueueActionsMenuButton = memo(() => {
|
||||||
const ref = useRef<HTMLDivElement>(null);
|
const ref = useRef<HTMLDivElement>(null);
|
||||||
@@ -27,10 +18,8 @@ export const QueueActionsMenuButton = memo(() => {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const isPauseEnabled = useFeatureStatus('pauseQueue');
|
const isPauseEnabled = useFeatureStatus('pauseQueue');
|
||||||
const isResumeEnabled = useFeatureStatus('resumeQueue');
|
const isResumeEnabled = useFeatureStatus('resumeQueue');
|
||||||
const isCancelAndClearAllEnabled = useFeatureStatus('cancelAndClearAll');
|
|
||||||
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
||||||
const cancelCurrent = useCancelCurrentQueueItem();
|
const cancelCurrent = useCancelCurrentQueueItem();
|
||||||
const clearQueue = useClearQueueDialog();
|
|
||||||
const {
|
const {
|
||||||
resumeProcessor,
|
resumeProcessor,
|
||||||
isLoading: isLoadingResumeProcessor,
|
isLoading: isLoadingResumeProcessor,
|
||||||
@@ -72,17 +61,6 @@ export const QueueActionsMenuButton = memo(() => {
|
|||||||
>
|
>
|
||||||
{t('queue.cancelAllExceptCurrentTooltip')}
|
{t('queue.cancelAllExceptCurrentTooltip')}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
{isCancelAndClearAllEnabled && (
|
|
||||||
<MenuItem
|
|
||||||
isDestructive
|
|
||||||
icon={<PiTrashSimpleBold />}
|
|
||||||
onClick={clearQueue.openDialog}
|
|
||||||
isLoading={clearQueue.isLoading}
|
|
||||||
isDisabled={clearQueue.isDisabled}
|
|
||||||
>
|
|
||||||
{t('queue.clearTooltip')}
|
|
||||||
</MenuItem>
|
|
||||||
)}
|
|
||||||
{isResumeEnabled && (
|
{isResumeEnabled && (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<PiPlayFill />}
|
icon={<PiPlayFill />}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
|||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
|
|
||||||
import ClearModelCacheButton from './ClearModelCacheButton';
|
import ClearModelCacheButton from './ClearModelCacheButton';
|
||||||
import ClearQueueButton from './ClearQueueButton';
|
|
||||||
import PauseProcessorButton from './PauseProcessorButton';
|
import PauseProcessorButton from './PauseProcessorButton';
|
||||||
import PruneQueueButton from './PruneQueueButton';
|
import PruneQueueButton from './PruneQueueButton';
|
||||||
import ResumeProcessorButton from './ResumeProcessorButton';
|
import ResumeProcessorButton from './ResumeProcessorButton';
|
||||||
@@ -13,23 +12,19 @@ import ResumeProcessorButton from './ResumeProcessorButton';
|
|||||||
const QueueTabQueueControls = () => {
|
const QueueTabQueueControls = () => {
|
||||||
const isPauseEnabled = useFeatureStatus('pauseQueue');
|
const isPauseEnabled = useFeatureStatus('pauseQueue');
|
||||||
const isResumeEnabled = useFeatureStatus('resumeQueue');
|
const isResumeEnabled = useFeatureStatus('resumeQueue');
|
||||||
const isCancelAndClearAllEnabled = useFeatureStatus('cancelAndClearAll');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Flex flexDir="column" layerStyle="first" borderRadius="base" p={2} gap={2}>
|
<Flex flexDir="column" layerStyle="first" borderRadius="base" p={2} gap={2}>
|
||||||
<Flex gap={2}>
|
<Flex gap={2}>
|
||||||
{isPauseEnabled || isResumeEnabled ? (
|
{(isPauseEnabled || isResumeEnabled) && (
|
||||||
<ButtonGroup w={28} orientation="vertical" size="sm">
|
<ButtonGroup w={28} orientation="vertical" size="sm">
|
||||||
{isResumeEnabled ? <ResumeProcessorButton /> : <></>}
|
{isResumeEnabled && <ResumeProcessorButton />}
|
||||||
{isPauseEnabled ? <PauseProcessorButton /> : <></>}
|
{isPauseEnabled && <PauseProcessorButton />}
|
||||||
</ButtonGroup>
|
</ButtonGroup>
|
||||||
) : (
|
|
||||||
<></>
|
|
||||||
)}
|
)}
|
||||||
<ButtonGroup w={28} orientation="vertical" size="sm">
|
<ButtonGroup w={28} orientation="vertical" size="sm">
|
||||||
<PruneQueueButton />
|
<PruneQueueButton />
|
||||||
{isCancelAndClearAllEnabled && <ClearQueueButton />}
|
<CancelAllExceptCurrentButton />
|
||||||
{!isCancelAndClearAllEnabled && <CancelAllExceptCurrentButton />}
|
|
||||||
</ButtonGroup>
|
</ButtonGroup>
|
||||||
</Flex>
|
</Flex>
|
||||||
<ClearModelCacheButton />
|
<ClearModelCacheButton />
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ToolChooser } from 'features/controlLayers/components/Tool/ToolChooser'
|
|||||||
import { CanvasManagerProviderGate } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
import { CanvasManagerProviderGate } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
||||||
import { selectCanvasSession } from 'features/controlLayers/store/canvasStagingAreaSlice';
|
import { selectCanvasSession } from 'features/controlLayers/store/canvasStagingAreaSlice';
|
||||||
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
import { useCancelAllExceptCurrentQueueItemDialog } from 'features/queue/components/CancelAllExceptCurrentQueueItemConfirmationAlertDialog';
|
||||||
import { useClearQueueDialog } from 'features/queue/components/ClearQueueConfirmationAlertDialog';
|
|
||||||
import { InvokeButtonTooltip } from 'features/queue/components/InvokeButtonTooltip/InvokeButtonTooltip';
|
import { InvokeButtonTooltip } from 'features/queue/components/InvokeButtonTooltip/InvokeButtonTooltip';
|
||||||
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
import { useCancelCurrentQueueItem } from 'features/queue/hooks/useCancelCurrentQueueItem';
|
||||||
import { useInvoke } from 'features/queue/hooks/useInvoke';
|
import { useInvoke } from 'features/queue/hooks/useInvoke';
|
||||||
@@ -16,7 +15,6 @@ import {
|
|||||||
PiLightningFill,
|
PiLightningFill,
|
||||||
PiSlidersHorizontalBold,
|
PiSlidersHorizontalBold,
|
||||||
PiSparkleFill,
|
PiSparkleFill,
|
||||||
PiTrashSimpleBold,
|
|
||||||
PiXBold,
|
PiXBold,
|
||||||
PiXCircle,
|
PiXCircle,
|
||||||
} from 'react-icons/pi';
|
} from 'react-icons/pi';
|
||||||
@@ -126,27 +124,6 @@ const CancelCurrentIconButton = memo(() => {
|
|||||||
|
|
||||||
CancelCurrentIconButton.displayName = 'CancelCurrentIconButton';
|
CancelCurrentIconButton.displayName = 'CancelCurrentIconButton';
|
||||||
|
|
||||||
const CancelAndClearAllIconButton = memo(() => {
|
|
||||||
const { t } = useTranslation();
|
|
||||||
const clearQueue = useClearQueueDialog();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Tooltip label={t('queue.clearTooltip')} placement="end">
|
|
||||||
<IconButton
|
|
||||||
isDisabled={clearQueue.isDisabled}
|
|
||||||
isLoading={clearQueue.isLoading}
|
|
||||||
aria-label={t('queue.clearTooltip')}
|
|
||||||
icon={<PiTrashSimpleBold />}
|
|
||||||
colorScheme="error"
|
|
||||||
onClick={clearQueue.openDialog}
|
|
||||||
flexGrow={1}
|
|
||||||
/>
|
|
||||||
</Tooltip>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
CancelAndClearAllIconButton.displayName = 'CancelAndClearAllIconButton';
|
|
||||||
|
|
||||||
const CancelAllExceptCurrentIconButton = memo(() => {
|
const CancelAllExceptCurrentIconButton = memo(() => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
const cancelAllExceptCurrent = useCancelAllExceptCurrentQueueItemDialog();
|
||||||
|
|||||||
Reference in New Issue
Block a user