NEWONE1
/
invokeai
/frontend
/web
/src
/features
/deleteImageModal
/components
/ImageUsageMessage.tsx
import { ListItem, Text, UnorderedList } from '@invoke-ai/ui-library'; | |
import type { ImageUsage } from 'features/deleteImageModal/store/types'; | |
import { some } from 'lodash-es'; | |
import { memo } from 'react'; | |
import { useTranslation } from 'react-i18next'; | |
type Props = { | |
imageUsage?: ImageUsage; | |
topMessage?: string; | |
bottomMessage?: string; | |
}; | |
const ImageUsageMessage = (props: Props) => { | |
const { t } = useTranslation(); | |
const { | |
imageUsage, | |
topMessage = t('gallery.currentlyInUse'), | |
bottomMessage = t('gallery.featuresWillReset'), | |
} = props; | |
if (!imageUsage) { | |
return null; | |
} | |
if (!some(imageUsage)) { | |
return null; | |
} | |
return ( | |
<> | |
<Text>{topMessage}</Text> | |
<UnorderedList paddingInlineStart={6} fontSize="sm"> | |
{imageUsage.isControlLayerImage && <ListItem>{t('controlLayers.controlLayer')}</ListItem>} | |
{imageUsage.isReferenceImage && <ListItem>{t('controlLayers.referenceImage')}</ListItem>} | |
{imageUsage.isInpaintMaskImage && <ListItem>{t('controlLayers.inpaintMask')}</ListItem>} | |
{imageUsage.isRasterLayerImage && <ListItem>{t('controlLayers.rasterLayer')}</ListItem>} | |
{imageUsage.isRegionalGuidanceImage && <ListItem>{t('controlLayers.regionalGuidance')}</ListItem>} | |
{imageUsage.isUpscaleImage && <ListItem>{t('ui.tabs.upscalingTab')}</ListItem>} | |
{imageUsage.isNodesImage && <ListItem>{t('ui.tabs.workflowsTab')}</ListItem>} | |
</UnorderedList> | |
<Text>{bottomMessage}</Text> | |
</> | |
); | |
}; | |
export default memo(ImageUsageMessage); | |