Skip to content

Commit 0eeb0dd

Browse files
feat(ui): use invoke logo for thumbnail fallback for default workflows
1 parent 28c74cb commit 0eeb0dd

File tree

1 file changed

+24
-6
lines changed
  • invokeai/frontend/web/src/features/nodes/components/sidePanel/workflow/WorkflowLibrary

1 file changed

+24
-6
lines changed

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

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useLoadWorkflowWithDialog } from 'features/workflowLibrary/components/L
77
import InvokeLogo from 'public/assets/images/invoke-symbol-wht-lrg.svg';
88
import { memo, useCallback, useMemo } from 'react';
99
import { useTranslation } from 'react-i18next';
10-
import { PiImageBold, PiUsersBold } from 'react-icons/pi';
10+
import { PiImage, PiUsersBold } from 'react-icons/pi';
1111
import type { WorkflowRecordListItemWithThumbnailDTO } from 'services/api/types';
1212

1313
import { DeleteWorkflow } from './WorkflowLibraryListItemActions/DeleteWorkflow';
@@ -66,7 +66,7 @@ export const WorkflowListItem = memo(({ workflow }: { workflow: WorkflowRecordLi
6666
<Image
6767
src={workflow.thumbnail_url ?? undefined}
6868
fallbackStrategy="beforeLoadOrError"
69-
fallback={<ThumbnailFallback />}
69+
fallback={workflow.category === 'default' ? <DefaultThumbnailFallback /> : <UserThumbnailFallback />}
7070
objectFit="cover"
7171
objectPosition="50% 50%"
7272
height={IMAGE_THUMBNAIL_SIZE}
@@ -135,18 +135,36 @@ export const WorkflowListItem = memo(({ workflow }: { workflow: WorkflowRecordLi
135135
});
136136
WorkflowListItem.displayName = 'WorkflowListItem';
137137

138-
const ThumbnailFallback = memo(() => {
138+
const UserThumbnailFallback = memo(() => {
139139
return (
140140
<Flex
141141
height={IMAGE_THUMBNAIL_SIZE}
142142
minWidth={IMAGE_THUMBNAIL_SIZE}
143-
bg="base.650"
143+
bg="base.600"
144144
borderRadius="base"
145145
alignItems="center"
146146
justifyContent="center"
147+
opacity={0.3}
147148
>
148-
<Icon color="base.500" as={PiImageBold} boxSize={FALLBACK_ICON_SIZE} />
149+
<Icon as={PiImage} boxSize={FALLBACK_ICON_SIZE} />
149150
</Flex>
150151
);
151152
});
152-
ThumbnailFallback.displayName = 'ThumbnailFallback';
153+
UserThumbnailFallback.displayName = 'UserThumbnailFallback';
154+
155+
const DefaultThumbnailFallback = memo(() => {
156+
return (
157+
<Flex
158+
height={IMAGE_THUMBNAIL_SIZE}
159+
minWidth={IMAGE_THUMBNAIL_SIZE}
160+
bg="base.600"
161+
borderRadius="base"
162+
alignItems="center"
163+
justifyContent="center"
164+
opacity={0.3}
165+
>
166+
<Image src={InvokeLogo} alt="invoke-logo" userSelect="none" boxSize={FALLBACK_ICON_SIZE} p={1} />
167+
</Flex>
168+
);
169+
});
170+
DefaultThumbnailFallback.displayName = 'DefaultThumbnailFallback';

0 commit comments

Comments
 (0)