diff --git a/src/app/components/forms/OnSubmitMessageModal.js b/src/app/components/forms/OnSubmitMessageModal.js index de60da4..93bfc36 100644 --- a/src/app/components/forms/OnSubmitMessageModal.js +++ b/src/app/components/forms/OnSubmitMessageModal.js @@ -24,7 +24,7 @@ const onModalClose = () =>{ > - {!sucess && ( + {sucess == false && ( { const dataObject = JSON.parse(data); if (dataObject?.success) { - pluvStation_id = dataObject.responseData.array_to_json[0].formsanswersid; - pluvStation_data = await getPluvStation_data(pluvStation_id); + const pluvStation_id = + dataObject.responseData.array_to_json[0].formsanswersid; + const pluvStation_data = await getPluvStation_data(pluvStation_id); const pluvObject = assemblePluvStationObject( pluvStation_data.data.responseData.array_to_json[0] ); @@ -60,14 +61,13 @@ async function getPluviometerStation(userId, setPluviometerStation) { } else { setPluviometerStation(false); } + socketObject.close(); }; socketObject.onerror = (e) => { console.log(e.message); setPluviometerStation(undefined); }; - - socketObject.close(); } export default getPluviometerStation; diff --git a/src/app/navigation/AppNavigator.js b/src/app/navigation/AppNavigator.js index 9e1b5c1..d4d4b0f 100644 --- a/src/app/navigation/AppNavigator.js +++ b/src/app/navigation/AppNavigator.js @@ -61,8 +61,9 @@ function tabScreens() { ( diff --git a/src/app/screens/PluviometerRegisterScreen.js b/src/app/screens/PluviometerRegisterScreen.js index 66b18c5..3cf5e45 100644 --- a/src/app/screens/PluviometerRegisterScreen.js +++ b/src/app/screens/PluviometerRegisterScreen.js @@ -1,4 +1,4 @@ -import React, { useState, useContext } from "react"; +import React, { useState, useContext, useEffect } from "react"; import { MaterialIcons } from "@expo/vector-icons"; import { StyleSheet, Text, View } from "react-native"; import { Form, SubmitButton } from "../components/forms"; @@ -15,7 +15,6 @@ import { AssembleIngestionPluvRegistration } from "../components/forms/AssembleI import OnSubmitAwaitModal from "../components/forms/OnSubmitAwaitModal"; import OnSubmitMessageModal from "../components/forms/OnSubmitMessageModal"; - function Institution({ user }) { const institutionMap = { E: "Escola", @@ -131,7 +130,7 @@ function PluvDateTimePicker({ pluviometer, }) { return ( - + {!pluviometer && ( { - const isSent = await AssembleIngestionPluvRegistration( + const isSent = AssembleIngestionPluvRegistration( date, time, user, address, coordinates - ); - if (isSent) { - setApiMessage(isSent.ok); - } + ).then((isSent) => { + if (isSent) { + setApiMessage(isSent.ok); - return apiMessage; + setShowAwaitModal(false); + setShowMessageModal(true); + } + return isSent; + }); }; + useEffect(() => { + if (apiMessage) { + setUser({ + ...user, + pluviometer: { + regiterDate: date + " | " + time, + address: location, + institutionType: user.institutionType, + institutionName: user.institutionName, + coordinates: { + lat: coordinates["latitude"], + long: coordinates["longitude"], + }, + }, + }); + } + }, [apiMessage]); + return ( @@ -207,10 +227,7 @@ function PluviometerRegisterScreen(props) { initialValues={{}} onSubmit={async () => { setShowAwaitModal(true); - sendForm(date, time, user, location, coordinates).then((isSent) => { - setShowAwaitModal(false); - setShowMessageModal(true); - }); + sendForm(date, time, user, location, coordinates); }} > - - Endereço do pluviômetro*: @@ -304,7 +319,6 @@ const styles = StyleSheet.create({ textAlign: "center", color: colors.primary, }, - }); export default PluviometerRegisterScreen; diff --git a/src/app/screens/SharingDataScreen.js b/src/app/screens/SharingDataScreen.js index 0191fc7..97493ba 100644 --- a/src/app/screens/SharingDataScreen.js +++ b/src/app/screens/SharingDataScreen.js @@ -10,7 +10,7 @@ import colors from "../config/colors"; function SharingDataScreen({ navigation }) { const authContext = useContext(AuthContext); - const [showLog, setShowLog] = useState(false); + const [showLog, setShowLog] = useState(false); const [showLogPluv, setShowLogPluv] = useState(false); const isRegistered = authContext.user?.username != null; @@ -18,15 +18,22 @@ function SharingDataScreen({ navigation }) { console.log(authContext.user?.pluviometer); const currentUser = authContext.user; - + const onConfirmPluv = () => { + if (authContext.user?.pluviometer == false) { + setShowLogPluv(false); + navigation.navigate("Perfil"); + } else if (authContext.user?.pluviometer == undefined) { + setShowLogPluv(false); + } + }; return ( setShowLogPluv(false)}//{setShowLogPluv(false), navigation.navigate("Perfil")}} + description="Para enviar um dado pluviométrico cadastre um pluviômetro" + confirmationLabel="Cadastrar" + onConfirm={() => onConfirmPluv()} //{setShowLogPluv(false), navigation.navigate("Perfil")}} onDecline={() => setShowLogPluv(false)} /> navigation.navigate("FloodSharingData", { user: currentUser })} + onPress={() => + navigation.navigate("FloodSharingData", { user: currentUser }) + } active={isRegistered} inactiveOnPress={() => setShowLog(true)} /> @@ -76,15 +85,24 @@ function SharingDataScreen({ navigation }) { navigation.navigate("PluviometerSharingData", { user: currentUser })} + onPress={() => + navigation.navigate("PluviometerSharingData", { + user: currentUser, + }) + } SvgImage={assets.PluviometricDataIcon} active={isRegistered && pluviometer} - inactiveOnPress={() => {setShowLog(!isRegistered), setShowLogPluv(!pluviometer && isRegistered)}} + inactiveOnPress={() => { + setShowLog(!isRegistered), + setShowLogPluv(!pluviometer && isRegistered); + }} /> navigation.navigate("RiverFloodData", { user: currentUser })} + onPress={() => + navigation.navigate("RiverFloodData", { user: currentUser }) + } SvgImage={assets.riverLevel.RiverIcon} active={isRegistered} inactiveOnPress={() => setShowLog(true)}