Skip to content

Commit 5ddcf82

Browse files
fix(ui): use correct BoardTooltip component w/ thumbnail image
1 parent d88f36b commit 5ddcf82

File tree

4 files changed

+21
-42
lines changed

4 files changed

+21
-42
lines changed

Diff for: invokeai/frontend/web/src/features/gallery/components/Boards/BoardsList/BoardTooltip.tsx

+13-19
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
import { Flex, Image, Text } from '@invoke-ai/ui-library';
22
import { skipToken } from '@reduxjs/toolkit/query';
3+
import { useMemo } from 'react';
34
import { useTranslation } from 'react-i18next';
4-
import { useGetBoardAssetsTotalQuery, useGetBoardImagesTotalQuery } from 'services/api/endpoints/boards';
55
import { useGetImageDTOQuery } from 'services/api/endpoints/images';
6-
import type { BoardDTO } from 'services/api/types';
76

87
type Props = {
9-
board: BoardDTO | null;
8+
imageCount: number;
9+
assetCount: number;
10+
isArchived: boolean;
11+
coverImageName?: string | null;
1012
};
1113

12-
export const BoardTooltip = ({ board }: Props) => {
14+
export const BoardTooltip = ({ imageCount, assetCount, isArchived, coverImageName }: Props) => {
1315
const { t } = useTranslation();
14-
const { imagesTotal } = useGetBoardImagesTotalQuery(board?.board_id || 'none', {
15-
selectFromResult: ({ data }) => {
16-
return { imagesTotal: data?.total ?? 0 };
17-
},
18-
});
19-
const { assetsTotal } = useGetBoardAssetsTotalQuery(board?.board_id || 'none', {
20-
selectFromResult: ({ data }) => {
21-
return { assetsTotal: data?.total ?? 0 };
22-
},
23-
});
24-
const { currentData: coverImage } = useGetImageDTOQuery(board?.cover_image_name ?? skipToken);
16+
const { currentData: coverImage } = useGetImageDTOQuery(coverImageName ?? skipToken);
17+
18+
const totalString = useMemo(() => {
19+
return `${t('boards.imagesWithCount', { count: imageCount })}, ${t('boards.assetsWithCount', { count: assetCount })}${isArchived ? ` (${t('boards.archived')})` : ''}`;
20+
}, [assetCount, imageCount, isArchived, t]);
2521

2622
return (
2723
<Flex flexDir="column" alignItems="center" gap={1}>
@@ -34,13 +30,11 @@ export const BoardTooltip = ({ board }: Props) => {
3430
aspectRatio="1/1"
3531
borderRadius="base"
3632
borderBottomRadius="lg"
33+
mt={1}
3734
/>
3835
)}
3936
<Flex flexDir="column" alignItems="center">
40-
<Text noOfLines={1}>
41-
{t('boards.imagesWithCount', { count: imagesTotal })}, {t('boards.assetsWithCount', { count: assetsTotal })}
42-
</Text>
43-
{board?.archived && <Text>({t('boards.archived')})</Text>}
37+
<Text noOfLines={1}>{totalString}</Text>
4438
</Flex>
4539
</Flex>
4640
);

Diff for: invokeai/frontend/web/src/features/gallery/components/Boards/BoardsList/BoardTotalsTooltip.tsx

-12
This file was deleted.

Diff for: invokeai/frontend/web/src/features/gallery/components/Boards/BoardsList/GalleryBoard.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import IAIDroppable from 'common/components/IAIDroppable';
1717
import type { AddToBoardDropData } from 'features/dnd/types';
1818
import { AutoAddBadge } from 'features/gallery/components/Boards/AutoAddBadge';
1919
import BoardContextMenu from 'features/gallery/components/Boards/BoardContextMenu';
20-
import { BoardTotalsTooltip } from 'features/gallery/components/Boards/BoardsList/BoardTotalsTooltip';
20+
import { BoardTooltip } from 'features/gallery/components/Boards/BoardsList/BoardTooltip';
2121
import {
2222
selectAutoAddBoardId,
2323
selectAutoAssignBoardOnClick,
@@ -121,13 +121,14 @@ const GalleryBoard = ({ board, isSelected }: GalleryBoardProps) => {
121121
{(ref) => (
122122
<Tooltip
123123
label={
124-
<BoardTotalsTooltip
124+
<BoardTooltip
125125
imageCount={board.image_count}
126126
assetCount={board.asset_count}
127-
isArchived={Boolean(board.archived)}
127+
isArchived={board.archived}
128+
coverImageName={board.cover_image_name}
128129
/>
129130
}
130-
openDelay={1000}
131+
openDelay={500}
131132
placement="left"
132133
closeOnScroll
133134
>

Diff for: invokeai/frontend/web/src/features/gallery/components/Boards/BoardsList/NoBoardBoard.tsx

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
44
import IAIDroppable from 'common/components/IAIDroppable';
55
import type { RemoveFromBoardDropData } from 'features/dnd/types';
66
import { AutoAddBadge } from 'features/gallery/components/Boards/AutoAddBadge';
7-
import { BoardTotalsTooltip } from 'features/gallery/components/Boards/BoardsList/BoardTotalsTooltip';
7+
import { BoardTooltip } from 'features/gallery/components/Boards/BoardsList/BoardTooltip';
88
import NoBoardBoardContextMenu from 'features/gallery/components/Boards/NoBoardBoardContextMenu';
99
import {
1010
selectAutoAddBoardId,
@@ -58,13 +58,9 @@ const NoBoardBoard = memo(({ isSelected }: Props) => {
5858
{(ref) => (
5959
<Tooltip
6060
label={
61-
<BoardTotalsTooltip
62-
imageCount={data?.image_count ?? 0}
63-
assetCount={data?.asset_count ?? 0}
64-
isArchived={false}
65-
/>
61+
<BoardTooltip imageCount={data?.image_count ?? 0} assetCount={data?.asset_count ?? 0} isArchived={false} />
6662
}
67-
openDelay={1000}
63+
openDelay={500}
6864
placement="left"
6965
closeOnScroll
7066
>

0 commit comments

Comments
 (0)