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 ( setEmail(text)} defaultValue={email} placeholder={i18n.t("message.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={i18n.t("message.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: { width: "100%", alignContent: 'center', alignItems: 'center', }, input: { backgroundColor: 'white', width: "80%" }, button: { marginTop: 10, } });