import React, { useState, useContext } from "react";
import { MaterialIcons } from "@expo/vector-icons";
import { StyleSheet, Text, View } from "react-native";
import { Form, SubmitButton } from "../components/forms";
import { dimensions } from "../config/dimensions";
import FormDatePicker from "../components/forms/FormDatePicker";
import colors from "../config/colors/";
import moment from "moment";
import { TouchableOpacity } from "react-native-gesture-handler";
import { FontAwesome5 } from "@expo/vector-icons";
import { MaterialCommunityIcons } from "@expo/vector-icons";
import { AuthContext } from "../auth/context";
import { Shadow } from "react-native-shadow-2";
import { AssembleIngestionPluvRegistration } from "../components/forms/AssembleIngestionObject";
import OnSubmitAwaitModal from "../components/forms/OnSubmitAwaitModal";
import OnSubmitMessageModal from "../components/forms/OnSubmitMessageModal";
function Institution({ user }) {
const institutionMap = {
E: "Escola",
D: "Defesa Civil",
N: "Não governamental",
O: "Outra",
X: "Nenhuma",
};
return (
Tipo de instituição:
{user.institutiontype
? institutionMap[user.institutiontype]
: "Tipo de instituição não informado"}
Nome da instituição:
{user.institution
? user.institution
: "Nome da instituição não informado"}
);
}
function LocationPicker({
navigation,
location,
setLocationAddr,
setGeoLocation,
pluviometer,
}) {
return (
{pluviometer && (
{pluviometer.address
? pluviometer.address
: "Erro ao carregar endereço"}
)}
{!pluviometer && (
navigation.navigate("FormMap", {
setLocationAddr: setLocationAddr,
setGeoLocation: setGeoLocation,
})
}
>
{location}
)}
);
}
function PluvDateTimePicker({
onDateChange,
onTimeChange,
date,
time,
formTypeFace,
pluviometer,
}) {
return (
{!pluviometer && (
)}
{pluviometer && (
{pluviometer.regiterDate
? pluviometer.regiterDate
: "Erro ao carregar a data"}
)}
);
}
function PluviometerRegisterScreen(props) {
const [date, setDate] = useState(moment());
const [time, setTime] = useState(moment());
const [location, setLocationAddr] = useState("Defina o endereço no mapa");
const [coordinates, setCoordinates] = useState(null);
const { user, _ } = useContext(AuthContext);
const [showAwaitModal, setShowAwaitModal] = useState(false);
const [showMessageModal, setShowMessageModal] = useState(false);
const [apiMessage, setApiMessage] = useState(null);
const sendForm = async (date, time, user, address, coordinates) => {
const isSent = await AssembleIngestionPluvRegistration(
date,
time,
user,
address,
coordinates
);
if (isSent) {
setApiMessage(isSent.ok);
}
return apiMessage;
};
return (
);
}
const styles = StyleSheet.create({
label: {
fontSize: dimensions.text.secondary,
marginBottom: 12,
fontWeight: "bold",
textAlign: "left",
color: colors.secondary,
},
labelTipoInst: {
fontSize: dimensions.text.secondary,
fontWeight: "bold",
textAlign: "left",
color: colors.secondary,
},
subText: {
color: colors.subText,
fontSize: 16,
alignSelf: "center",
fontWeight: "500",
paddingLeft: 16,
},
subTextDate: {
color: colors.subText,
fontSize: 16,
alignSelf: "center",
fontWeight: "500",
},
title: {
fontSize: 18,
fontWeight: "bold",
textAlign: "center",
color: colors.primary,
},
});
export default PluviometerRegisterScreen;