import React, { useState } from 'react'; import { Text, View, StyleSheet, Image } from 'react-native'; import { TextInput, Button, HelperText } from 'react-native-paper'; import API from './../API.js'; import { useNavigation } from '@react-navigation/native'; import i18n from "../i18nMessages.js"; let LoginForm = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [tries, setTries] = useState(0); const navigation = useNavigation(); const resetPasswordBol = tries > 2; const resetPassword = async () => { await API.resetPassword(email); alert("We sent you instructions to your email!") } const loginCall = async () => { let r = await API.logIn(email.trim(), password); if (r.status === "ok") return navigation.reset({ index: 0, routes: [{ name: 'MainNavigation' }], }); //console.log(r) setError(r.status); if (r.status === 'incorrect password') { if (resetPasswordBol) { await resetPassword(); setTries(0); } else { setTries(tries + 1); } } else { setTries(0); } //alert(i18n.t('message.wrongInformation')) }; return ( EMI Fellowship {i18n.t("message.login")} setEmail(text)} defaultValue={email} placeholder="email" label={i18n.t("message.email")} autoCapitalize='none' autoComplete='email' autoCorrect={false} mode="outlined" keyboardType='email-address' /> {error !== '' && error !== 'incorrect password' ? {i18n.t("message.invalidEmail")} : <>} setPassword(text)} defaultValue={password} placeholder="password" textContentType="password" label={i18n.t("message.password")} secureTextEntry={true} autoCapitalize='none' autoComplete='email' autoCorrect={false} mode="outlined" /> {error === 'incorrect password' ? {i18n.t("message.reviewPassword")} : <>} { resetPasswordBol ? : <> } ); } export default LoginForm; const styles = StyleSheet.create({ mainView: { backgroundColor: 'white', flex: 1, flexDirection: "column", justifyContent: "center", padding: 15, width: "100%", alignContent: 'center', alignItems: 'center', }, header: { fontFamily: 'Helvetica-Bold', fontSize: 42, textAlign: "left", paddingBottom: 15, color: '#777', alignContent: 'center' }, logo: { width: 250, height: 250, justifyContent: 'center', alignItems: 'center', }, input: { backgroundColor: 'white', width: "80%" }, button: { marginTop: 10, } });