diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json
index 046a16f4b6..06aebb218f 100644
--- a/invokeai/frontend/web/public/locales/en.json
+++ b/invokeai/frontend/web/public/locales/en.json
@@ -1715,6 +1715,7 @@
"myTemplates": "My Templates",
"name": "Name",
"negativePrompt": "Negative Prompt",
+ "noTemplates": "No templates",
"noMatchingTemplates": "No matching templates",
"promptTemplatesDesc1": "Prompt templates add text to the prompts you write in the prompt box.",
"promptTemplatesDesc2": "Use the placeholder string
{{placeholder}}
to specify where your prompt should be included in the template.",
diff --git a/invokeai/frontend/web/src/common/components/IAIImageFallback.tsx b/invokeai/frontend/web/src/common/components/IAIImageFallback.tsx
index 1a23c458cf..229f9ba6d9 100644
--- a/invokeai/frontend/web/src/common/components/IAIImageFallback.tsx
+++ b/invokeai/frontend/web/src/common/components/IAIImageFallback.tsx
@@ -47,6 +47,7 @@ export const IAINoContentFallback = memo((props: IAINoImageFallbackProps) => {
userSelect: 'none',
opacity: 0.7,
color: 'base.500',
+ fontSize: 'md',
...sx,
}),
[sx]
@@ -55,11 +56,7 @@ export const IAINoContentFallback = memo((props: IAINoImageFallbackProps) => {
return (
{icon && }
- {props.label && (
-
- {props.label}
-
- )}
+ {props.label && {props.label}}
);
});
diff --git a/invokeai/frontend/web/src/features/stylePresets/components/StylePresetList.tsx b/invokeai/frontend/web/src/features/stylePresets/components/StylePresetList.tsx
index cf2a93c265..5c8e9170eb 100644
--- a/invokeai/frontend/web/src/features/stylePresets/components/StylePresetList.tsx
+++ b/invokeai/frontend/web/src/features/stylePresets/components/StylePresetList.tsx
@@ -1,15 +1,16 @@
import { Button, Collapse, Flex, Icon, Text, useDisclosure } from '@invoke-ai/ui-library';
+import { useAppSelector } from 'app/store/storeHooks';
+import { IAINoContentFallback } from 'common/components/IAIImageFallback';
+import { useTranslation } from 'react-i18next';
import { PiCaretDownBold } from 'react-icons/pi';
import type { StylePresetRecordWithImage } from 'services/api/endpoints/stylePresets';
import { StylePresetListItem } from './StylePresetListItem';
export const StylePresetList = ({ title, data }: { title: string; data: StylePresetRecordWithImage[] }) => {
+ const { t } = useTranslation();
const { onToggle, isOpen } = useDisclosure({ defaultIsOpen: true });
-
- if (!data.length) {
- return <>>;
- }
+ const searchTerm = useAppSelector((s) => s.stylePreset.searchTerm);
return (
@@ -22,9 +23,16 @@ export const StylePresetList = ({ title, data }: { title: string; data: StylePre
- {data.map((preset) => (
-
- ))}
+ {data.length ? (
+ data.map((preset) => )
+ ) : (
+
+ )}
);
diff --git a/invokeai/frontend/web/src/features/stylePresets/components/StylePresetMenu.tsx b/invokeai/frontend/web/src/features/stylePresets/components/StylePresetMenu.tsx
index 9365a0df28..51a0a92c66 100644
--- a/invokeai/frontend/web/src/features/stylePresets/components/StylePresetMenu.tsx
+++ b/invokeai/frontend/web/src/features/stylePresets/components/StylePresetMenu.tsx
@@ -1,4 +1,4 @@
-import { Flex, Text } from '@invoke-ai/ui-library';
+import { Flex } from '@invoke-ai/ui-library';
import { EMPTY_ARRAY } from 'app/store/constants';
import { useAppSelector } from 'app/store/storeHooks';
import { StylePresetExportButton } from 'features/stylePresets/components/StylePresetExportButton';
@@ -57,12 +57,6 @@ export const StylePresetMenu = () => {
- {data.presets.length === 0 && data.defaultPresets.length === 0 && (
-
- {t('stylePresets.noMatchingTemplates')}
-
- )}
-
{allowPrivateStylePresets && (