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: (name: string) => Promise onClose: () => void } export const CreateProjectDialog = ({ open, onSuccess, onClose }: Props): any => { const { t } = useTranslation() const [processing, setProcessing] = useState(false) const [error, setError] = useState('') const [projectName, setProjectName] = useState('') const handleCreateProject = async () => { if (!projectName) return setProcessing(true) try { await onSuccess(projectName) closeDialog() } catch (err) { setError(err.message) } setProcessing(false) } const handleSubmitOnEnter = (event) => { if (event.key === 'Enter') { handleCreateProject() } } const closeDialog = () => { setProjectName('') onClose() } return ( {t('editor.projects.createProject')} {processing ? (
{t('editor.projects.processing')}
) : ( setProjectName(e.target.value)} onKeyDown={handleSubmitOnEnter} /> {error && error.length > 0 &&

{error}

}
)}
) }