import { Button, ConfirmationAlertDialog, Divider, Flex, ListItem, Text, UnorderedList, useDisclosure, } from '@invoke-ai/ui-library'; import { toast } from 'features/toast/toast'; import { memo, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useConvertModelMutation } from 'services/api/endpoints/models'; import type { CheckpointModelConfig } from 'services/api/types'; interface ModelConvertProps { modelConfig: CheckpointModelConfig; } export const ModelConvertButton = memo(({ modelConfig }: ModelConvertProps) => { const { t } = useTranslation(); const [convertModel, { isLoading }] = useConvertModelMutation(); const { isOpen, onOpen, onClose } = useDisclosure(); const modelConvertHandler = useCallback(() => { if (!modelConfig || isLoading) { return; } const toastId = `CONVERTING_MODEL_${modelConfig.key}`; toast({ id: toastId, title: `${t('modelManager.convertingModelBegin')}: ${modelConfig.name}`, status: 'info', }); convertModel(modelConfig.key) .unwrap() .then(() => { toast({ id: toastId, title: `${t('modelManager.modelConverted')}: ${modelConfig.name}`, status: 'success' }); }) .catch(() => { toast({ id: toastId, title: `${t('modelManager.modelConversionFailed')}: ${modelConfig.name}`, status: 'error', }); }); }, [modelConfig, isLoading, t, convertModel]); return ( <> {t('modelManager.convertToDiffusersHelpText1')} {t('modelManager.convertToDiffusersHelpText2')} {t('modelManager.convertToDiffusersHelpText3')} {t('modelManager.convertToDiffusersHelpText4')} {t('modelManager.convertToDiffusersHelpText5')} {t('modelManager.convertToDiffusersHelpText6')} ); }); ModelConvertButton.displayName = 'ModelConvertButton';