Skip to content

Commit 1a84a2f

Browse files
feat(ui): restore share workflow button
1 parent b87febc commit 1a84a2f

File tree

2 files changed

+9
-26
lines changed

2 files changed

+9
-26
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,25 @@
11
import { IconButton, Tooltip } from '@invoke-ai/ui-library';
2-
import { useStore } from '@nanostores/react';
3-
import { $projectUrl } from 'app/store/nanostores/projectId';
42
import { useShareWorkflow } from 'features/nodes/components/sidePanel/workflow/WorkflowLibrary/ShareWorkflowModal';
53
import type { MouseEvent } from 'react';
6-
import { useCallback } from 'react';
4+
import { memo, useCallback } from 'react';
75
import { useTranslation } from 'react-i18next';
86
import { PiShareFatBold } from 'react-icons/pi';
97
import type { WorkflowRecordListItemWithThumbnailDTO } from 'services/api/types';
108

11-
export const ViewWorkflow = ({
12-
isHovered,
13-
setIsHovered,
14-
workflow,
15-
}: {
16-
isHovered: boolean;
17-
setIsHovered: (isHovered: boolean) => void;
18-
workflow: WorkflowRecordListItemWithThumbnailDTO;
19-
}) => {
20-
const projectUrl = useStore($projectUrl);
9+
export const ShareWorkflowButton = memo(({ workflow }: { workflow: WorkflowRecordListItemWithThumbnailDTO }) => {
2110
const shareWorkflow = useShareWorkflow();
2211
const { t } = useTranslation();
2312

2413
const handleClickShare = useCallback(
2514
(e: MouseEvent<HTMLButtonElement>) => {
2615
e.stopPropagation();
27-
setIsHovered(false);
2816
shareWorkflow(workflow);
2917
},
30-
[shareWorkflow, workflow, setIsHovered]
18+
[shareWorkflow, workflow]
3119
);
3220

33-
if (!projectUrl || !workflow.workflow_id || workflow.category === 'user') {
34-
return null;
35-
}
36-
3721
return (
38-
<Tooltip
39-
label={t('workflows.copyShareLink')}
40-
// This prevents an issue where the tooltip isn't closed after the modal is opened
41-
isOpen={!isHovered ? false : undefined}
42-
closeOnScroll
43-
>
22+
<Tooltip label={t('workflows.copyShareLink')} closeOnScroll>
4423
<IconButton
4524
size="sm"
4625
variant="ghost"
@@ -50,4 +29,6 @@ export const ViewWorkflow = ({
5029
/>
5130
</Tooltip>
5231
);
53-
};
32+
});
33+
34+
ShareWorkflowButton.displayName = 'ShareWorkflowButton';

invokeai/frontend/web/src/features/nodes/components/sidePanel/workflow/WorkflowLibrary/WorkflowListItem.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { SystemStyleObject } from '@invoke-ai/ui-library';
22
import { Badge, Flex, Icon, Image, Spacer, Text } from '@invoke-ai/ui-library';
33
import { useAppSelector } from 'app/store/storeHooks';
4+
import { ShareWorkflowButton } from 'features/nodes/components/sidePanel/workflow/WorkflowLibrary/WorkflowLibraryListItemActions/ShareWorkflow';
45
import { selectWorkflowId } from 'features/nodes/store/workflowSlice';
56
import { useLoadWorkflow } from 'features/workflowLibrary/components/LoadWorkflowConfirmationAlertDialog';
67
import InvokeLogo from 'public/assets/images/invoke-symbol-wht-lrg.svg';
@@ -127,6 +128,7 @@ export const WorkflowListItem = ({ workflow }: { workflow: WorkflowRecordListIte
127128
<DeleteWorkflow workflowId={workflow.workflow_id} />
128129
</>
129130
)}
131+
{workflow.category === 'project' && <ShareWorkflowButton workflow={workflow} />}
130132
</Flex>
131133
</Flex>
132134
</Flex>

0 commit comments

Comments
 (0)