Browse Source

Merge branch 'main' of github.com:IGSD-UoW/WPD-MobileApp

master
GabrielTrettel 4 years ago
parent
commit
3ef3df3f33
  1. 126
      src/app/components/SchoolPicker.js
  2. 123
      src/app/screens/PluviometerRegisterScreen.js
  3. 9
      src/app/screens/RegisterScreen.js
  4. 5
      src/package-lock.json
  5. 1
      src/package.json

126
src/app/components/SchoolPicker.js

@ -0,0 +1,126 @@
import React, { useContext, useState, Component, Fragment } from "react";
import { StyleSheet, Text, View, PixelRatio, Picker } from "react-native";
import { MaterialIcons } from "@expo/vector-icons";
import { FontAwesome5 } from '@expo/vector-icons';
import colors from "../config/colors";
import { dimensions } from "../config/dimensions";
import Screen from "./Screen";
import SearchableDropdown from 'react-native-searchable-dropdown';
const items = [
{
id: 1,
name: 'JavaScript',
},
{
id: 2,
name: 'Java',
},
{
id: 3,
name: 'Ruby',
},
{
id: 4,
name: 'React Native',
},
{
id: 5,
name: 'PHP',
},
{
id: 6,
name: 'Python',
},
];
function SchoolPicker() {
const [selectedItems, setSelectedItems] = useState(null);
console.log(selectedItems);
return (
<View style={{ flex: 1, width: "100%" }}>
<View style={styles.location}>
<View style={styles.mapIcon}>
<FontAwesome5
name="university"
size={28}
color="white"
alignItems="center"
alignContent="center"
/>
</View>
<View style={styles.adressText}>
<Fragment>
<SearchableDropdown
multi={false}
selectedItems={selectedItems}
onItemSelect={(item) => {
setSelectedItems(item)
}}
containerStyle={{ padding: 5 }}
itemStyle={{
padding: 10,
marginTop: 2,
backgroundColor: '#ddd',
borderColor: '#bbb',
borderWidth: 1,
borderRadius: 5,
}} itemTextStyle={{ color: '#222' }}
items={items}
chip={true}
resetValue={false}
textInputProps={
{
placeholder: "Escola onde você estuda...",
underlineColorAndroid: "transparent",
style: {
padding: 12,
borderWidth: 1,
borderColor: '#ccc',
borderRadius: 5,
},
onTextChange: text => console.log(text)
}
}
listProps={
{
nestedScrollEnabled: false,
}
}
/>
</Fragment>
</View>
</View>
</View>
);
}
const styles = StyleSheet.create({
location: {
//flex: 1,
width: "100%",
flexDirection: "row",
alignItems: "flex-start",
justifyContent: "space-between",
// backgroundColor: colors.secondary,
},
adressText: {
flex: 0.90,
paddingLeft: 5,
},
mapIcon: {
backgroundColor: colors.primary,
padding: 8,
width: 20,
alignItems: "center",
borderRadius: 5,
flex: 0.10,
},
});
export default SchoolPicker;

123
src/app/screens/PluviometerRegisterScreen.js

@ -0,0 +1,123 @@
import React, { useState, useContext, useEffect } from "react";
import { StyleSheet, Text, View, ScrollView, PixelRatio, SafeAreaView } from "react-native";
import * as Yup from "yup";
import {
Form,
FormField,
FormPicker as Picker,
SubmitButton,
} from "../components/forms";
import Screen from "../components/Screen";
import useLocation from "../hooks/useLocation";
import FormImagePicker from "../components/forms/FormImagePicker";
import { insertPluviometerData } from "../database/databaseLoader";
import { showMessage } from "react-native-flash-message";
import { dimensions, scaleDimsFromWidth } from "../config/dimensions";
import FormDatePicker from "../components/forms/FormDatePicker";
import colors from "../config/colors/";
import moment from "moment";
import FormLocationPicker from "../components/forms/FormLocationPicker";
import { TouchableOpacity } from "react-native-gesture-handler";
import { EventLocationContext } from "../context/EventLocationContext";
import SchoolPicker from "../components/SchoolPicker";
const dims = scaleDimsFromWidth(85, 85, 25);
function PluviometerRegisterScreen(props) {
const context = useContext(EventLocationContext);
const amount = 2;
useEffect(() => {
context.defaultLocation();
}, []);
const location = context.eventCoordinates;
const address = context.eventLocation;
const [dateTime, setDateTime] = useState(moment());
const [time, setTime] = useState(moment());
return (
<Screen style={styles.container}>
<Form>
<View style={{ flex: 1 }}>
<View
style={{
flex: 1,
flexDirection: "column",
justifyContent: "space-between",
alignContent: "flex-start",
}}
>
<View style={{ flex: 1 }}>
<Text style={styles.title}> Cadastro do Pluviômetro </Text>
</View>
{/*Data da coleta:*/}
<View
style={{ flex: 2 }}
>
<Text style={styles.label}> Data do cadastro: </Text>
<FormDatePicker
textStyle={{
borderColor: colors.gray,
borderWidth: 3,
}}
defaultDate={new Date()}
onDateChange={(value) => setDateTime(value)}
onTimeChange={(value) => setTime(value)}
/>
</View>
{/*Local do evento:*/}
<View style={{ flex: 2 }}>
<ScrollView>
<Text style={styles.label}> Endereço do pluviômetro: </Text>
<TouchableOpacity
onPress={() => props.navigation.navigate("FormMap")}
>
<FormLocationPicker />
</TouchableOpacity>
</ScrollView>
</View>
<View style={{ flex: 4 }}>
<Text style={styles.label}> Escola: </Text>
<SchoolPicker />
</View>
</View>
<SubmitButton title="Enviar" style={{ marginBottom: 100 }} />
</View>
</Form>
</Screen>
);
}
const styles = StyleSheet.create({
container: {
padding: 10,
flex: 1,
},
image: {
width: dims.width * 0.8,
height: dims.height * 0.8,
justifyContent: "center",
alignItems: "center",
},
label: {
fontSize: dimensions.text.secondary,
fontWeight: "bold",
textAlign: "left",
color: colors.lightBlue,
},
title: {
fontSize: 20,
fontWeight: "bold",
textAlign: "center",
color: colors.primary,
},
});
export default PluviometerRegisterScreen;

9
src/app/screens/RegisterScreen.js

@ -40,7 +40,6 @@ export default function RegisterScreen(props) {
const comparePassword = (password, confirmPassword) => {
if (password !== confirmPassword) {
setSingUpFailed(true);
console.log("Senhas Diferentes");
} else {
setSingUpFailed(false);
}
@ -85,12 +84,12 @@ export default function RegisterScreen(props) {
/>
</View>
<View>
<Text style={styles.labelStyle}> Número de telefone: </Text>
<Text style={styles.labelStyle}> Número do telefone: </Text>
<FormField
maxLength={12}
name="number"
numberOfLines={1}
placeholder="Nome Completo"
placeholder="Número de telefone celular"
/>
</View>
<View>
@ -99,7 +98,7 @@ export default function RegisterScreen(props) {
maxLength={12}
name="password"
numberOfLines={1}
placeholder="Nome Completo"
placeholder="Senha"
/>
</View>
<View>
@ -108,7 +107,7 @@ export default function RegisterScreen(props) {
maxLength={12}
name="confirmPassword"
numberOfLines={1}
placeholder="Nome Completo"
placeholder="Repetir a senha"
/>
</View>
<ErrorMessage

5
src/package-lock.json

@ -14844,6 +14844,11 @@
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-2.10.1.tgz",
"integrity": "sha512-Z2kKSk4AwWRQNCBmTjViuBQK0/Lx0jc25TZptn/2gKYUCOuVRvCekoA26u0Tsb3BIQ8tWDsZW14OwDlFUXW1aw=="
},
"react-native-searchable-dropdown": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/react-native-searchable-dropdown/-/react-native-searchable-dropdown-1.1.3.tgz",
"integrity": "sha512-ip6YwjKED/h27oRQGN3f62usFMj5IfS6tr/zZWfQItCAV/XAq5E9P0Exvg/86gSlcGJnnZdoixK+PS1sElxcyA=="
},
"react-native-simple-dialogs": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/react-native-simple-dialogs/-/react-native-simple-dialogs-1.4.0.tgz",

1
src/package.json

@ -45,6 +45,7 @@
"react-native-reanimated": "~1.13.0",
"react-native-safe-area-context": "3.1.4",
"react-native-screens": "~2.10.1",
"react-native-searchable-dropdown": "^1.1.3",
"react-native-simple-dialogs": "^1.4.0",
"react-native-svg": "^12.1.0",
"react-native-svg-uri": "^1.2.3",

Loading…
Cancel
Save