diff --git a/src/app/components/forms/FormDatePicker.js b/src/app/components/forms/FormDatePicker.js new file mode 100644 index 0000000..b39dee2 --- /dev/null +++ b/src/app/components/forms/FormDatePicker.js @@ -0,0 +1,151 @@ +import React, { useState } from 'react'; 7 +import { Modal, StyleSheet, Text, TouchableHighlight, View, Platform, TouchableOpacity } from 'react-native'; +import DateTimePicker from "@react-native-community/datetimepicker"; + +import moment from "moment"; +import colors from '../../config/colors'; + +const FormDatePicker = (props) => { + + const { textStyle, defaultDate } = props; + const [date, setDate] = useState(moment(defaultDate)); + const [show, setShow] = useState(false); + + const onChange = (e, selectedDate) => { + setDate(moment(selectedDate)); + } + + const androidOnChange = (e, selectedDate) => { + setShow(false); + if (selectedDate) { + setDate(moment(selectedDate)); + props.onDateChange(selectedDate); + // console.log(moment(selectedDate).format("DD-MM-YYYY")); + // console.log(date.format("DD-MM-YYYY")); + } + } + + const onCancelPress = () => { + setDate(moment(defaultDate)); + setShow(false); + //console.log(moment(defaultDate).format("DD-MM-YYYY")) + } + + const onDonePress = () => { + props.onDateChange(date); + setShow(false); + //console.log("done"); + //console.log(date.format("DD-MM-YYYY")); + + } + + const renderDatePicker = () => { + return ( + + ) + } + + return ( + setShow(true)}> + {date.format("DD-MM-YYYY")} + {Platform.OS !== 'ios' && show && renderDatePicker()} + + {Platform.OS === 'ios' && show && ( + setShow(false)} + > + + setShow(false)}> + console.log("datepicker clicked")} + > + + + { renderDatePicker() } + + onCancelPress()} + style={[styles.btnText, styles.btnCancel]} + > + + Cancel + + + onDonePress()} + style={[styles.btnText, styles.btnDone]} + > + + Done + + + + + + + + + + )} + + ); +}; + +FormDatePicker.defaultProps = { + textStyle: {}, + defaultDate: moment(), + onDateChange: () => { }, +} + +const styles = StyleSheet.create({ + btnCancel: { + left: 0, + }, + btnDone: { + right: 0, + }, + btnText: { + position: "absolute", + top: 0, + height: 42, + paddingHorizontal: 20, + flexDirection: "row", + alignItems: "center", + justifyContent: "center", + }, +}); + +export default FormDatePicker; \ No newline at end of file diff --git a/src/app/screens/PluviometerSharingDataScreen.js b/src/app/screens/PluviometerSharingDataScreen.js index 7a6bac5..d62bf33 100644 --- a/src/app/screens/PluviometerSharingDataScreen.js +++ b/src/app/screens/PluviometerSharingDataScreen.js @@ -6,8 +6,6 @@ import { View, Image, ScrollView, - Modal, - Platform, } from "react-native"; import * as Yup from "yup"; @@ -21,16 +19,11 @@ import Screen from "../components/Screen"; import useLocation from "../hooks/useLocation"; import FormImagePicker from "../components/forms/FormImagePicker"; import { insertPluviometerData } from "../database/databaseLoader"; -import { - TouchableHighlight, - TouchableOpacity, -} from "react-native-gesture-handler"; -import DateTimePicker from "@react-native-community/datetimepicker"; import { FontAwesome5 } from "@expo/vector-icons"; import { showMessage } from "react-native-flash-message"; -import moment from "moment"; import colors from "../config/colors"; import { scaleDimsFromWidth } from "../config/dimensions"; +import FormDatePicker from "../components/forms/FormDatePicker"; const dims = scaleDimsFromWidth(85, 85, 25); @@ -44,51 +37,12 @@ const validationSchema = Yup.object().shape({ images: Yup.array(), }); + function PluviometerSharingDataScreen(props) { const location = useLocation(); - //-------------------------------------------DATETIMEPICKER------------------------------------------------ - const { textStyle, defaultDate } = props; - const [date, setDate] = useState(moment(defaultDate)) - const [show, setShow] = useState(false); - const [dateTime, setDateTime] = useState(moment(defaultDate)) //gambi pra inserir no BD - - //---------------ios------------------------ - const onChange = (e, selectedDate) => { - setDate(moment(selectedDate)); - setDateTime(moment(selectedDate).format("DD/MM/YYYY").toString()); - } - const onCancelPress = () => { - setDate(moment(defaultDate)); - setShow(false); - } - const onDonePress = () => { - setShow(false); - } - //------------------------------------------- + const [dateTime, setDateTime] = useState(); - const onAndroidChange = (e, selectedDate) => { - setShow(false); - if (selectedDate) { - setDate(moment(selectedDate)); - setDateTime(moment(selectedDate).format("DD/MM/YYYY").toString()); - } - } - - const renderDatePicker = () => { - return ( - - ) - } - // ---------------------------------------------------------------------------------------------------------*/ return ( @@ -121,80 +75,27 @@ function PluviometerSharingDataScreen(props) { > Quantidade de chuva: - + - - Data da coleta: - setShow(true)}> - - - {date.format('DD/MM/YYYY')} - - - {Platform.OS !== 'ios' && show && renderDatePicker()} - {Platform.OS === 'ios' && show && ( - setShow(false)}> - - setShow(false)}> - console.log('Datepicker press')}> - - - { renderDatePicker() } - - - Cancelar - - - - Ok - - - - - - - )} - - + + Data da coleta: + setDateTime(value)} + /> +