import React, { useContext, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Dialog, DialogContent, Typography, Button, Grid } from '@mui/material'; import TokenInput from '../../basic/RobotPage/TokenInput'; import Key from '@mui/icons-material/Key'; import { type UseAppStoreType, AppContext } from '../../contexts/AppContext'; import { type UseFederationStoreType, FederationContext } from '../../contexts/FederationContext'; import { type UseGarageStoreType, GarageContext } from '../../contexts/GarageContext'; interface Props { setView: (state: 'welcome' | 'onboarding' | 'recovery' | 'profile') => void; setInputToken: (inputToken: string) => void; } const RecoveryDialog = ({ setInputToken, setView }: Props): React.JSX.Element => { const { t } = useTranslation(); const { open, setOpen } = useContext(AppContext); const { garage } = useContext(GarageContext); const { federation } = useContext(FederationContext); const [recoveryToken, setRecoveryToken] = useState(''); const [validToken, setValidToken] = useState(false); useEffect(() => { setRecoveryToken(''); }, [open.recovery]); const onClickRecover = (): void => { void garage.createRobot(federation, recoveryToken); setInputToken(recoveryToken); setView('profile'); setOpen((open) => { return { ...open, recovery: false }; }); }; return ( { setOpen((open) => { return { ...open, recovery: false }; }); }} aria-labelledby='recovery-dialog-title' aria-describedby='recovery-description' > {t('Robot recovery')} {t('Enter your robot token to re-build your robot and gain access to its trades.')} ); }; export default RecoveryDialog;