Skip to content

Commit cc36cfb

Browse files
feat(ui): reorg workflow menu buttons
1 parent ded8a84 commit cc36cfb

File tree

5 files changed

+20
-64
lines changed

5 files changed

+20
-64
lines changed

invokeai/frontend/web/src/features/nodes/components/flow/panels/TopPanel/TopPanel.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
import { Flex, Spacer } from '@invoke-ai/ui-library';
1+
import { Flex, IconButton, Spacer } from '@invoke-ai/ui-library';
22
import { useAppSelector } from 'app/store/storeHooks';
33
import AddNodeButton from 'features/nodes/components/flow/panels/TopPanel/AddNodeButton';
44
import ClearFlowButton from 'features/nodes/components/flow/panels/TopPanel/ClearFlowButton';
55
import SaveWorkflowButton from 'features/nodes/components/flow/panels/TopPanel/SaveWorkflowButton';
66
import UpdateNodesButton from 'features/nodes/components/flow/panels/TopPanel/UpdateNodesButton';
7+
import { useWorkflowEditorSettingsModal } from 'features/nodes/components/flow/panels/TopRightPanel/WorkflowEditorSettings';
78
import { WorkflowName } from 'features/nodes/components/sidePanel/WorkflowName';
89
import { selectWorkflowName } from 'features/nodes/store/workflowSlice';
9-
import WorkflowLibraryMenu from 'features/workflowLibrary/components/WorkflowLibraryMenu/WorkflowLibraryMenu';
1010
import { memo } from 'react';
11+
import { useTranslation } from 'react-i18next';
12+
import { PiGearSixFill } from 'react-icons/pi';
1113

1214
const TopCenterPanel = () => {
1315
const name = useAppSelector(selectWorkflowName);
16+
const modal = useWorkflowEditorSettingsModal();
17+
18+
const { t } = useTranslation();
1419
return (
1520
<Flex gap={2} top={2} left={2} right={2} position="absolute" alignItems="flex-start" pointerEvents="none">
1621
<Flex gap="2">
@@ -22,7 +27,12 @@ const TopCenterPanel = () => {
2227
<Spacer />
2328
<ClearFlowButton />
2429
<SaveWorkflowButton />
25-
<WorkflowLibraryMenu />
30+
<IconButton
31+
pointerEvents="auto"
32+
aria-label={t('workflows.workflowEditorMenu')}
33+
icon={<PiGearSixFill />}
34+
onClick={modal.setTrue}
35+
/>
2636
</Flex>
2737
);
2838
};

invokeai/frontend/web/src/features/nodes/components/sidePanel/NewWorkflowButton.tsx

Lines changed: 0 additions & 34 deletions
This file was deleted.

invokeai/frontend/web/src/features/nodes/components/sidePanel/WorkflowListMenu/ActiveWorkflowNameAndActions.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Flex, Spacer } from '@invoke-ai/ui-library';
22
import { useAppSelector } from 'app/store/storeHooks';
3-
import { NewWorkflowButton } from 'features/nodes/components/sidePanel/NewWorkflowButton';
43
import { WorkflowListMenuTrigger } from 'features/nodes/components/sidePanel/WorkflowListMenu/WorkflowListMenuTrigger';
54
import { WorkflowViewEditToggleButton } from 'features/nodes/components/sidePanel/WorkflowViewEditToggleButton';
65
import { selectWorkflowMode } from 'features/nodes/store/workflowSlice';
6+
import { WorkflowLibraryMenu } from 'features/workflowLibrary/components/WorkflowLibraryMenu/WorkflowLibraryMenu';
77
import { memo } from 'react';
88

99
import SaveWorkflowButton from './SaveWorkflowButton';
@@ -17,7 +17,7 @@ export const ActiveWorkflowNameAndActions = memo(() => {
1717
<Spacer />
1818
{mode === 'edit' && <SaveWorkflowButton />}
1919
<WorkflowViewEditToggleButton />
20-
<NewWorkflowButton />
20+
<WorkflowLibraryMenu />
2121
</Flex>
2222
);
2323
});

invokeai/frontend/web/src/features/workflowLibrary/components/WorkflowLibraryMenu/SettingsMenuItem.tsx

Lines changed: 0 additions & 18 deletions
This file was deleted.

invokeai/frontend/web/src/features/workflowLibrary/components/WorkflowLibraryMenu/WorkflowLibraryMenu.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,12 @@ import LoadWorkflowFromGraphMenuItem from 'features/workflowLibrary/components/W
1313
import { NewWorkflowMenuItem } from 'features/workflowLibrary/components/WorkflowLibraryMenu/NewWorkflowMenuItem';
1414
import SaveWorkflowAsMenuItem from 'features/workflowLibrary/components/WorkflowLibraryMenu/SaveWorkflowAsMenuItem';
1515
import SaveWorkflowMenuItem from 'features/workflowLibrary/components/WorkflowLibraryMenu/SaveWorkflowMenuItem';
16-
import SettingsMenuItem from 'features/workflowLibrary/components/WorkflowLibraryMenu/SettingsMenuItem';
1716
import UploadWorkflowMenuItem from 'features/workflowLibrary/components/WorkflowLibraryMenu/UploadWorkflowMenuItem';
1817
import { memo } from 'react';
1918
import { useTranslation } from 'react-i18next';
2019
import { PiDotsThreeOutlineFill } from 'react-icons/pi';
2120

22-
const WorkflowLibraryMenu = () => {
21+
export const WorkflowLibraryMenu = memo(() => {
2322
const { t } = useTranslation();
2423
const { isOpen, onOpen, onClose } = useDisclosure();
2524
const shift = useShiftModifier();
@@ -31,6 +30,8 @@ const WorkflowLibraryMenu = () => {
3130
aria-label={t('workflows.workflowEditorMenu')}
3231
icon={<PiDotsThreeOutlineFill />}
3332
pointerEvents="auto"
33+
size="sm"
34+
variant="ghost"
3435
/>
3536
<MenuList pointerEvents="auto">
3637
<NewWorkflowMenuItem />
@@ -39,13 +40,10 @@ const WorkflowLibraryMenu = () => {
3940
<SaveWorkflowMenuItem />
4041
<SaveWorkflowAsMenuItem />
4142
<DownloadWorkflowMenuItem />
42-
<MenuDivider />
43-
<SettingsMenuItem />
4443
{shift && <MenuDivider />}
4544
{shift && <LoadWorkflowFromGraphMenuItem />}
4645
</MenuList>
4746
</Menu>
4847
);
49-
};
50-
51-
export default memo(WorkflowLibraryMenu);
48+
});
49+
WorkflowLibraryMenu.displayName = 'WorkflowLibraryMenu';

0 commit comments

Comments
 (0)