feat(ui): switch to viewer/canvas on invoke

This commit is contained in:
psychedelicious
2025-06-23 13:21:45 +10:00
parent 214005d795
commit f0ba693922
4 changed files with 40 additions and 23 deletions

View File

@@ -8,6 +8,8 @@ import { parseify } from 'common/util/serialize';
import { useIsWorkflowEditorLocked } from 'features/nodes/hooks/useIsWorkflowEditorLocked';
import { useEnqueueWorkflows } from 'features/queue/hooks/useEnqueueWorkflows';
import { $isReadyToEnqueue } from 'features/queue/store/readiness';
import { useAutoLayoutContextSafe } from 'features/ui/layouts/auto-layout-context';
import { VIEWER_PANEL_ID, WORKSPACE_PANEL_ID } from 'features/ui/layouts/shared';
import { selectActiveTab } from 'features/ui/store/uiSelectors';
import { useCallback } from 'react';
import { serializeError } from 'serialize-error';
@@ -17,6 +19,7 @@ const log = logger('generation');
export const useInvoke = () => {
const dispatch = useAppDispatch();
const ctx = useAutoLayoutContextSafe();
const tabName = useAppSelector(selectActiveTab);
const isReady = useStore($isReadyToEnqueue);
const isLocked = useIsWorkflowEditorLocked();
@@ -56,11 +59,21 @@ export const useInvoke = () => {
const enqueueBack = useCallback(() => {
enqueue(false, false);
}, [enqueue]);
if (tabName === 'generate' || tabName === 'workflows' || tabName === 'upscaling') {
ctx?.focusPanel(VIEWER_PANEL_ID);
} else if (tabName === 'canvas') {
ctx?.focusPanel(WORKSPACE_PANEL_ID);
}
}, [ctx, enqueue, tabName]);
const enqueueFront = useCallback(() => {
enqueue(true, false);
}, [enqueue]);
if (tabName === 'generate' || tabName === 'workflows' || tabName === 'upscaling') {
ctx?.focusPanel(VIEWER_PANEL_ID);
} else if (tabName === 'canvas') {
ctx?.focusPanel(WORKSPACE_PANEL_ID);
}
}, [ctx, enqueue, tabName]);
return { enqueueBack, enqueueFront, isLoading, isDisabled: !isReady || isLocked, enqueue };
};