import { useEffect, useState } from 'react' import { Button } from '@janhq/uikit' import { useAtomValue } from 'jotai' import { useConvertHuggingFaceModel } from '@/hooks/useConvertHuggingFaceModel' import { conversionStatusAtom, repoDataAtom, } from '@/helpers/atoms/HFConverter.atom' export const HuggingFaceConvertingModal = () => { // This component only loads when repoData is not null const repoData = useAtomValue(repoDataAtom)! // This component only loads when conversionStatus is not null const conversionStatus = useAtomValue(conversionStatusAtom)! const [status, setStatus] = useState('') const { cancelConvertHuggingFaceModel } = useConvertHuggingFaceModel() useEffect(() => { switch (conversionStatus) { case 'downloading': setStatus('Downloading files...') break case 'converting': setStatus('Converting...') break case 'quantizing': setStatus('Quantizing...') break case 'stopping': setStatus('Stopping...') break case 'generating': setStatus('Generating metadata...') break } }, [conversionStatus]) const onStopClick = () => { cancelConvertHuggingFaceModel(repoData.id, repoData) } return ( <>

Hugging Face Converter

{conversionStatus === 'done' ? (

Done!

Now you can use the model on Jan as usual. Have fun!

) : ( <>

{status}

)} ) }