diff --git a/src/app/screens/LoginScreen.js b/src/app/screens/LoginScreen.js index 667b470..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 })} + />
- + + + { 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, diff --git a/src/app/screens/RiverFloodSharingDataScreen.js b/src/app/screens/RiverFloodSharingDataScreen.js index 422e66b..34a1548 100644 --- a/src/app/screens/RiverFloodSharingDataScreen.js +++ b/src/app/screens/RiverFloodSharingDataScreen.js @@ -219,6 +219,8 @@ const styles = StyleSheet.create({ justifyContent: "space-between", }, error_txt: { + paddingHorizontal: 16, + marginTop: 12, fontSize: 18, color: colors.danger, }, diff --git a/src/app/screens/SharingFloodZonesScreen.js b/src/app/screens/SharingFloodZonesScreen.js index 419f7fe..03d035a 100644 --- a/src/app/screens/SharingFloodZonesScreen.js +++ b/src/app/screens/SharingFloodZonesScreen.js @@ -181,6 +181,7 @@ const styles = StyleSheet.create({ justifyContent: "center", }, error_txt: { + marginTop: 12, paddingHorizontal: 16, fontSize: 18, color: colors.danger,