import React from 'react'; import { translate } from '../../i18n/i18n'; import { string } from 'yup'; import { useToast, Flex } from 'native-base'; import TextFormField from '../UI/TextFormField'; import ButtonBase from '../UI/ButtonBase'; import { Sms } from 'iconsax-react-native'; interface ChangeEmailFormProps { onSubmit: (oldEmail: string, newEmail: string) => Promise; } const validationSchemas = { email: string().email('Invalid email').required('Email is required'), }; const ChangeEmailForm = ({ onSubmit }: ChangeEmailFormProps) => { const [formData, setFormData] = React.useState({ oldEmail: { value: '', error: null as string | null, }, newEmail: { value: '', error: null as string | null, }, }); const toast = useToast(); return ( { let error: null | string = null; validationSchemas.email .validate(t) .catch((e) => (error = e.message)) .finally(() => { setFormData({ ...formData, oldEmail: { value: t, error } }); }); }} /> { let error: null | string = null; validationSchemas.email .validate(t) .catch((e) => (error = e.message)) .finally(() => { setFormData({ ...formData, newEmail: { value: t, error } }); }); }} /> { try { const resp = await onSubmit( formData.oldEmail.value, formData.newEmail.value ); toast.show({ description: resp }); } catch (e) { toast.show({ description: e as string }); } }} /> ); }; export default ChangeEmailForm;