From 201f3c81af4babf1921d8de035a2b77c4ac583ca Mon Sep 17 00:00:00 2001 From: GabrielTrettel Date: Thu, 11 Nov 2021 17:52:41 -0300 Subject: [PATCH 1/3] Fixing error msgs misalignment --- src/app/screens/LoginScreen.js | 3 +++ src/app/screens/RainSharingDataScreen.js | 4 +++- src/app/screens/RiverFloodSharingDataScreen.js | 2 ++ src/app/screens/SharingFloodZonesScreen.js | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/screens/LoginScreen.js b/src/app/screens/LoginScreen.js index 667b470..0abc483 100644 --- a/src/app/screens/LoginScreen.js +++ b/src/app/screens/LoginScreen.js @@ -110,10 +110,13 @@ export default function LoginScreen(props) { marginBottom={dimensions.spacing.big_padding} /> + + Date: Thu, 11 Nov 2021 18:10:45 -0300 Subject: [PATCH 2/3] Adding more descriptive error messages in register screen --- src/app/screens/RegisterScreen.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/app/screens/RegisterScreen.js b/src/app/screens/RegisterScreen.js index a749809..a5d0a0d 100644 --- a/src/app/screens/RegisterScreen.js +++ b/src/app/screens/RegisterScreen.js @@ -265,7 +265,7 @@ export default function RegisterScreen(props) { const [date, setDate] = useState(_moment); const [singUpFailed, setSingUpFailed] = useState(false); const [scroll, setScroll] = useState(); - const [showLog, setShowLog] = useState(false); + const [showLog, setShowLog] = useState({show: false, message: ""}); const comparePassword = (password, confirmPassword) => { if (password !== confirmPassword) { @@ -286,25 +286,25 @@ export default function RegisterScreen(props) { }; const handleSubmit = async (form) => { - console.log("apaaaaaaa"); const formDate = date.format("DD/MM/yyyy") === moment().format("DD/MM/yyyy") ? "" : date; const result = await signup({ ...form, dateofborn: formDate }); - // console.log(result) switch (result.status) { case 200: automaticLogin(form); break; - case 422: - // setError() + default: + setShowLog({show: true, message: "Um erro inesperado ocorreu. Tente novamente mais tarde"}) + } }; const fieldsAreNotInUse = async (form, actions) => { - var inUse = true; + var inUse = false; const ru = await existUsername(form.number); + if (ru.data) { actions.setFieldError("number", "Este número de telefone já está em uso"); inUse = false; @@ -315,17 +315,22 @@ export default function RegisterScreen(props) { actions.setFieldError("name", "Este apelido de usuário já está em uso"); inUse = false; } + + if (!ru.ok || !rn.ok) + setShowLog({show: true, message: "Um erro inesperado ocorreu. Tente novamente mais tarde"}) + + inUse && setShowLog({show: true, message: "Apelido de usuário ou telefone em uso"}) - return inUse; + return !inUse; }; return ( setShowLog(false)} + onConfirm={() => setShowLog({...showLog, show:false})} />
{ - isNotUsed ? handleSubmit(form) : setShowLog(true); + isNotUsed && handleSubmit(form); // NOTE: this woud be nice, but does not work... // : scroll.scrollTo({ // x: 0, From ba5dccfdd736a5334d9d16c23fe3e10c278998b9 Mon Sep 17 00:00:00 2001 From: GabrielTrettel Date: Thu, 11 Nov 2021 18:19:56 -0300 Subject: [PATCH 3/3] Adding more descriptive error messages in login screen --- src/app/screens/LoginScreen.js | 38 +++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/app/screens/LoginScreen.js b/src/app/screens/LoginScreen.js index 0abc483..ef51d79 100644 --- a/src/app/screens/LoginScreen.js +++ b/src/app/screens/LoginScreen.js @@ -18,6 +18,7 @@ import Button from "../components/Button"; import { TouchableNativeFeedback } from "react-native-gesture-handler"; import { login, userPersonalData } from "../api/auth"; import PasswordFormField from "../components/forms/PasswordFormField"; +import ConfirmationModal from "../components/ConfirmationModal"; const phoneRegex = RegExp( /^\(?[\(]?([0-9]{2})?\)?[)\b]?([0-9]{4,5})[-. ]?([0-9]{4})$/ @@ -75,22 +76,40 @@ function DashedOrSeparator() { export default function LoginScreen(props) { const authContext = useContext(AuthContext); + const [showLog, setShowLog] = useState({ show: false, message: "" }); const handleSubmit = async (name, password, setLoginFailed) => { const result = await login(name, password); - if (!result.ok) return setLoginFailed(true); + switch (result.status) { + case 404: + setLoginFailed(true); + return; + case 400: + setShowLog({ + show: true, + message: "Um erro inesperado ocorreu. Tente novamente mais tarde", + }); + return; + } + await authStorage.setToken(result.data); - // console.log("TOKEN: " + result.data); - setLoginFailed(false); + result.ok && setLoginFailed(false); const user = await userPersonalData(); user.ok && authContext.setUser(user.data); }; const [loginFailed, setLoginFailed] = useState(false); + return ( + setShowLog({ ...showLog, show: false })} + /> - - - + + +