import React, { useState } from 'react' import { useTranslation } from 'react-i18next' import { Dialog, DialogContent, DialogTitle, TextField } from '@mui/material' import CircularProgress from '@mui/material/CircularProgress' import Fade from '@mui/material/Fade' import FormControl from '@mui/material/FormControl' import { Button } from '../inputs/Button' import styles from './styles.module.scss' interface Props { open: boolean onSuccess: (url: string) => Promise onClose: () => void } export const InstallProjectDialog = ({ open, onSuccess, onClose }: Props): any => { const { t } = useTranslation() const [processing, setProcessing] = useState(false) const [error, setError] = useState('') const [projectUrl, setProjectUrl] = useState('') const onInstallProject = async () => { if (!projectUrl) return setProcessing(true) try { await onSuccess(projectUrl) closeDialog() } catch (err) { setError(err.message) } setProcessing(false) } const handleSubmitOnEnter = (event) => { if (event.key === 'Enter') { onInstallProject() } } const closeDialog = () => { setProjectUrl('') onClose() } return ( {t('editor.projects.installProject')} {processing ? (
{t('editor.projects.processing')}
) : ( setProjectUrl(e.target.value)} onKeyDown={handleSubmitOnEnter} /> {error && error.length > 0 &&

{error}

}
)}
) }