mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): rework queue controls
- Remove queue front button. Hold shift while clicking `Invoke` button to queue front. - Restore queue menu actions w/ the reclaimed space. - Simplify queue interaction hooks.
This commit is contained in:
committed by
Kent Keirsey
parent
7b9d8df1a7
commit
ccbe1b233d
@@ -2,23 +2,28 @@ import { enqueueRequested } from 'app/store/actions';
|
||||
import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
|
||||
import { useIsReadyToEnqueue } from 'common/hooks/useIsReadyToEnqueue';
|
||||
import { selectActiveTab } from 'features/ui/store/uiSelectors';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useCallback } from 'react';
|
||||
import { useEnqueueBatchMutation } from 'services/api/endpoints/queue';
|
||||
|
||||
export const useQueueBack = () => {
|
||||
export const useInvoke = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
const tabName = useAppSelector(selectActiveTab);
|
||||
const { isReady } = useIsReadyToEnqueue();
|
||||
const [_, { isLoading }] = useEnqueueBatchMutation({
|
||||
fixedCacheKey: 'enqueueBatch',
|
||||
});
|
||||
const isDisabled = useMemo(() => !isReady, [isReady]);
|
||||
const queueBack = useCallback(() => {
|
||||
if (isDisabled) {
|
||||
if (!isReady) {
|
||||
return;
|
||||
}
|
||||
dispatch(enqueueRequested({ tabName, prepend: false }));
|
||||
}, [dispatch, isDisabled, tabName]);
|
||||
}, [dispatch, isReady, tabName]);
|
||||
const queueFront = useCallback(() => {
|
||||
if (!isReady) {
|
||||
return;
|
||||
}
|
||||
dispatch(enqueueRequested({ tabName, prepend: true }));
|
||||
}, [dispatch, isReady, tabName]);
|
||||
|
||||
return { queueBack, isLoading, isDisabled };
|
||||
return { queueBack, queueFront, isLoading, isDisabled: !isReady };
|
||||
};
|
||||
@@ -1,30 +0,0 @@
|
||||
import { enqueueRequested } from 'app/store/actions';
|
||||
import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
|
||||
import { useIsReadyToEnqueue } from 'common/hooks/useIsReadyToEnqueue';
|
||||
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
|
||||
import { selectActiveTab } from 'features/ui/store/uiSelectors';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useEnqueueBatchMutation } from 'services/api/endpoints/queue';
|
||||
|
||||
export const useQueueFront = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
const tabName = useAppSelector(selectActiveTab);
|
||||
const { isReady } = useIsReadyToEnqueue();
|
||||
const [_, { isLoading }] = useEnqueueBatchMutation({
|
||||
fixedCacheKey: 'enqueueBatch',
|
||||
});
|
||||
const prependEnabled = useFeatureStatus('prependQueue');
|
||||
|
||||
const isDisabled = useMemo(() => {
|
||||
return !isReady || !prependEnabled;
|
||||
}, [isReady, prependEnabled]);
|
||||
|
||||
const queueFront = useCallback(() => {
|
||||
if (isDisabled) {
|
||||
return;
|
||||
}
|
||||
dispatch(enqueueRequested({ tabName, prepend: true }));
|
||||
}, [dispatch, isDisabled, tabName]);
|
||||
|
||||
return { queueFront, isLoading, isDisabled };
|
||||
};
|
||||
Reference in New Issue
Block a user