import { useCallback, useMemo } from 'react' import { openFileExplorer } from '@janhq/core' import { Button, Modal, ModalContent, ModalFooter, ModalHeader, ModalTitle, } from '@janhq/uikit' import { useAtomValue, useSetAtom } from 'jotai' import { AlertCircle } from 'lucide-react' import { getImportModelStageAtom, setImportModelStageAtom, } from '@/hooks/useImportModel' import { openFileTitle } from '@/utils/titleUtils' import ImportingModelItem from './ImportingModelItem' import { janDataFolderPathAtom } from '@/helpers/atoms/AppConfig.atom' import { importingModelsAtom } from '@/helpers/atoms/Model.atom' const ImportingModelModal: React.FC = () => { const importingModels = useAtomValue(importingModelsAtom) const importModelStage = useAtomValue(getImportModelStageAtom) const setImportModelStage = useSetAtom(setImportModelStageAtom) const janDataFolder = useAtomValue(janDataFolderPathAtom) const modelFolder = useMemo(() => `${janDataFolder}/models`, [janDataFolder]) const finishedImportModel = importingModels.filter( (model) => model.status === 'IMPORTED' ).length const onOpenModelFolderClick = useCallback(() => { openFileExplorer(modelFolder) }, [modelFolder]) return ( { setImportModelStage('NONE') }} > Importing model ({finishedImportModel}/{importingModels.length})
{importingModels.map((model) => ( ))}

Own your model configurations, use at your own risk. Misconfigurations may result in lower quality or unexpected outputs.{' '}

) } export default ImportingModelModal