mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
fix(ui): edge case where you get stuck w/ the workflow list menu open, or it opens unexpectedly
- When resetting workflows, retain the current mode state - Remove the useEffect that reacted to the `isCleanEditor` flag to prevent getting menu getting locked open
This commit is contained in:
@@ -4,11 +4,11 @@ import { Box, Flex } from '@invoke-ai/ui-library';
|
||||
import { useAppSelector } from 'app/store/storeHooks';
|
||||
import { overlayScrollbarsParams } from 'common/components/OverlayScrollbars/constants';
|
||||
import { useWorkflowListMenu } from 'features/nodes/store/workflowListMenu';
|
||||
import { selectCleanEditor, selectWorkflowMode } from 'features/nodes/store/workflowSlice';
|
||||
import { selectWorkflowMode } from 'features/nodes/store/workflowSlice';
|
||||
import ResizeHandle from 'features/ui/components/tabs/ResizeHandle';
|
||||
import { OverlayScrollbarsComponent } from 'overlayscrollbars-react';
|
||||
import type { CSSProperties } from 'react';
|
||||
import { memo, useCallback, useEffect, useRef } from 'react';
|
||||
import { memo, useCallback, useRef } from 'react';
|
||||
import type { ImperativePanelGroupHandle } from 'react-resizable-panels';
|
||||
import { Panel, PanelGroup } from 'react-resizable-panels';
|
||||
|
||||
@@ -30,14 +30,6 @@ const NodeEditorPanelGroup = () => {
|
||||
const panelGroupRef = useRef<ImperativePanelGroupHandle>(null);
|
||||
const workflowListMenu = useWorkflowListMenu();
|
||||
|
||||
const isCleanEditor = useAppSelector(selectCleanEditor);
|
||||
|
||||
useEffect(() => {
|
||||
if (isCleanEditor) {
|
||||
workflowListMenu.open();
|
||||
}
|
||||
}, [isCleanEditor, workflowListMenu]);
|
||||
|
||||
const handleDoubleClickHandle = useCallback(() => {
|
||||
if (!panelGroupRef.current) {
|
||||
return;
|
||||
|
||||
@@ -159,7 +159,12 @@ export const workflowSlice = createSlice({
|
||||
};
|
||||
});
|
||||
|
||||
builder.addCase(nodeEditorReset, () => deepClone(initialWorkflowState));
|
||||
builder.addCase(nodeEditorReset, (state) => {
|
||||
const mode = state.mode;
|
||||
const newState = deepClone(initialWorkflowState);
|
||||
newState.mode = mode;
|
||||
return newState;
|
||||
});
|
||||
|
||||
builder.addCase(nodesChanged, (state, action) => {
|
||||
// If a node was removed, we should remove any exposed fields that were associated with it. However, node changes
|
||||
|
||||
Reference in New Issue
Block a user