import { useCallback, useEffect, useState } from 'react' import { Button, Modal } from '@janhq/joi' 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 = () => { const importingModels = useAtomValue(importingModelsAtom) const importModelStage = useAtomValue(getImportModelStageAtom) const setImportModelStage = useSetAtom(setImportModelStageAtom) const janDataFolder = useAtomValue(janDataFolderPathAtom) const [modelFolder, setModelFolder] = useState('') useEffect(() => { const getModelPath = async () => { // const modelPath = await joinPath([janDataFolder, 'models']) setModelFolder('') } getModelPath() }, [janDataFolder]) const finishedImportModel = importingModels.filter( (model) => model.status === 'IMPORTED' ).length const onOpenModelFolderClick = useCallback( () => { // openFileExplorer(modelFolder) }, [ /*modelFolder*/ ] ) return ( setImportModelStage('NONE')} title={`Importing model (${finishedImportModel}/${importingModels.length})`} content={
{importingModels.map((model) => ( ))}

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

} /> ) } export default ImportingModelModal