import * as React from 'react'; import { useState, useEffect, useRef } from 'react'; import { connect } from "react-redux"; import { Platform, StyleSheet, SafeAreaView, TouchableOpacity, Button, View, Text, Image, TextInput, Alert, Modal } from 'react-native'; import {useNetInfo} from "@react-native-community/netinfo"; // import NetInfo from "@react-native-community/netinfo"; import NetInfo from "../../components/netstatus"; import CustomHeader from '../../components/header.js'; import Assets from '../../components/assets.manager.js'; import Elements from '../../components/elements.js'; import Theme from '../../components/theme.style.js'; import Icon from '../../components/icons.js'; import moment from 'moment'; import DB, { setsession } from '../../components/storage/'; import REQUEST from '../../components/api/'; import CustomSafeArea from '../../components/safeArea.component'; class LoginBirthday extends React.Component { constructor(props) { super(props) } state = { loading: false, datepicker: false, focus: false, activeInput: null, agree: false, birthdate: "", cardnumber: null, deviceUUID: null, valid: false, } componentDidMount() { this.init() } componentWillUnmount() { } init = async () => { this.setState({ cardnumber: this.props.route.params?.cardnumber, deviceUUID: this.props.route.params?.deviceUUID }) } setCardNumber = () => { this.setState({ valid: cardnumber.length == 15 ? true : false }) } onAgree = () => { this.setState({ agree: this.state.agree == false ? true : false }) if(this.state.cardnumber && !this.state.agree && this.state.birthdate){ this.setState({ valid: true }) }else{ this.setState({ valid: false }) } } requestOTP = async (lcard_uuid, mobile_number, successCallback, errorCallback) => { this.setState({ loading: true }) let params = `lcard_uuid=${lcard_uuid}&mobile=${Theme.formatter.PMBL(mobile_number)}&is_resend=false`; await REQUEST("requestOTP", "get", {}, params, {}, function(res){ successCallback(res) }, function(error){ errorCallback(error) } ) } submitForm = () => { NetInfo.netstatus(isConnected => { if(isConnected) { this.onSubmit(success => { this.requestOTP(success.lcard_uuid, success.mobile_number, onSuccess => { this.setState({ loading: false }) console.log(onSuccess, this.props) if(onSuccess.status == 1) { this.props.navigation.navigate("AccountOtp", { data: success, callback: this.props.route.params?.callback, type: this.props.route.params?.type }) } }, onError => { this.setState({ loading: false }) }) }, error => { this.setState({ loading: false }) }) } else { Elements.nointernet2() } }) } onSubmit = async (successCallback, errorCallback) => { if(this.state.valid){ this.setState({ loading: true }) let formatbday = Theme.formatter.DT4API(this.state.birthdate) await REQUEST("login", "post", {}, {}, { birthdate: formatbday, deviceUUID: this.state.deviceUUID, card_number: this.state.cardnumber }, (data) => { if(data.data?.lcard_uuid && data.status == 1) { let sessiondata = { birthdate: formatbday, card_number: this.state.cardnumber, lcard_uuid: data.data?.lcard_uuid, mobile_number: data.data?.mobile_number } successCallback(sessiondata) // DB.setsession(sessiondata, (res) => { // successCallback(sessiondata) // }, (error) => { // errorCallback(error) // }) } else { this.setState({ loading: false }) if(Platform.OS == 'ios'){ setTimeout(() => { Alert.alert("Error", '\n' + data.message) }, 700) }else{ Alert.alert("Error", data.message) } errorCallback() } console.log("RESPONSE: " , data.message) }, (error) => { this.setState({ loading: false }) errorCallback(error) console.log(error) }) } } render() { return ( this.props.navigation.goBack()} navigation={this.props.navigation} /> Login Have an activated card? {this.state.cardnumber} this.props.navigation.goBack()} style={{flex: 0.4, alignSelf: 'flex-end', textAlign: 'right'}}> this.setState({ datepicker: true })}> Birthday {this.state.birthdate || "Select Date"} this.state.birthdate ? this.onAgree() : null} style={{flex: 0, paddingTop: 15}}> {!this.state.agree ? : } I agree to this.props.navigation.navigate("TermsConditions", {screen: "back"})}> Unioil's Data Privacy Policy. this.submitForm()} disabled={!this.state.valid} style={{padding: 20, paddingTop: 15, width: Theme.screen.w - 60, paddingBottom: 15, borderRadius: 10, backgroundColor: this.state.valid ? Theme.colors.primary : this.props.app_theme?.theme.dark ? this.props.app_theme?.theme.colors.border : Theme.colors.primary + "15"}}> Next { this.setState({ birthdate: selectedDate ? moment(selectedDate).format("DD MMM YYYY") : this.state.birthdate != null ? this.state.birthdate : null, datepicker: false }) }} onCancel={() => this.setState({ datepicker: false })} /> ); } } const mapStateToProps = (state) => { return { app_theme: state.appThemeReducer.theme } } export default connect(mapStateToProps, null)(LoginBirthday) // export default function LoginBirthday(navigation) { // var pickerRef = useRef() // const [loading, setloading] = useState(false); // const [datepicker, setdatepicker] = useState(false); // const [focus, setfocus] = useState(false); // const [activeInput, setActiveInput] = useState(null); // const [agree, setagree] = useState(false); // const [birthdate, setbirthdate] = useState(""); // const [cardnumber, setcardnumber] = useState(null); // const [deviceUUID, setdeviceUUID] = useState(null); // const [valid, setvalid] = useState(false); // // const cardnumber = navigation.route.params.cardnumber || "" // const init = async () => { // await setcardnumber(navigation.route.params?.cardnumber) // await setdeviceUUID(navigation.route.params?.deviceUUID) // } // useEffect(() => { // init() // }, []) // const setCardNumber = () => { // setvalid(cardnumber.length == 15 ? true : false) // } // const onAgree = () => { // setagree(agree == false ? true : false) // // console.log(cardnumber, agree, birthdate) // if(cardnumber && !agree && birthdate){ // setvalid(true) // }else{ // setvalid(false) // } // } // const FCMRegister = async () => { // let fcmRegistration = await DB.get("fcmRegistration") // let fcmToken = await DB.get("fcmToken") // if(fcmRegistration == "new"){ // REQUEST("fcm_registration", "post", {}, {}, { // token: fcmToken, // c_number: cardnumber, // notifs: "" // }, function(res){ // console.log(res) // DB.set("fcmRegistration", "registered", (r) => console.log(r), (e) => console.log(e)) // }, function(error){ // console.log(error) // }) // } // } // const requestOTP = async (lcard_uuid, mobile_number, successCallback, errorCallback) => { // setloading(true) // let params = `lcard_uuid=${lcard_uuid}&mobile=${Theme.formatter.PMBL(mobile_number)}&is_resend=false`; // await REQUEST("requestOTP", "get", {}, params, {}, // function(res){ // successCallback(res) // }, function(error){ // errorCallback(error) // } // ) // } // const onSubmit = async () => { // if(valid){ // setloading(true) // console.log("BDAY",birthdate) // console.log("UUID",deviceUUID) // console.log("cn",cardnumber) // // let formatbday = new moment(new Date(birthdate)).format("YYYY-MM-DD") // let formatbday = Theme.formatter.DT4API(birthdate) // await REQUEST("login", "post", {}, {}, { // birthdate: formatbday, // deviceUUID: deviceUUID, // card_number: cardnumber // }, function(data){ // if(data.data?.lcard_uuid && data.status == 1){ // let sessiondata = { // birthdate: formatbday, // card_number: cardnumber, // lcard_uuid: data.data?.lcard_uuid, // mobile_number: data.data?.mobile_number // } // DB.setsession(sessiondata, function(res){ // requestOTP(sessiondata.lcard_uuid, sessiondata.mobile_number, success => { // setloading(false) // if(success.status == 1) { // navigation.navigation.navigate("AccountOtp", { // data: sessiondata, // callback: navigation.route.params?.callback, // type: navigation.route.params?.type // }) // } // }, error => { // setloading(false) // }) // // navigation.navigation.navigate("AccountSendOtp", {data: data.data, callback: navigation.route.params?.callback, type: navigation.route.params?.type}) // }, function(error){ // console.log(error) // }) // }else{ // setloading(false) // if(Platform.OS == 'ios'){ // setTimeout(() => { // Alert.alert("Error", '\n' + data.message) // }, 700) // }else{ // Alert.alert("Error", data.message) // } // } // console.log("RESPONSE: " , data.message) // }, function(error){ // setloading(false) // console.log(error) // }) // } // } // return ( // // // navigation.navigation.goBack()} navigation={navigation} /> // // // // // // Login // // Have an activated card? // // // // {cardnumber} // navigation.navigation.goBack()} style={{flex: 0.4, alignSelf: 'flex-end', textAlign: 'right'}}> // // // // // // // { // setdatepicker(true) // // console.log(pickerRef) // // pickerRef.showDatePicker() // }} style={{}}> // Birthday // // {birthdate || "Select Date"} // // // // // // // {!agree ? : } // // // // I agree to // navigation.navigation.navigate("TermsConditions", {screen: "back"})}> // Unioil's Data Privacy Policy. // // // // // // { // NetInfo.fetch().then(state => { // console.log("Connection type", state.type); // console.log("Is connected?", state.isConnected); // if(state.isConnected){ // onSubmit() // }else{ // Elements.nointernet2() // } // }) // }} disabled={!valid} style={{padding: 20, paddingTop: 15, width: Theme.screen.w - 60, paddingBottom: 15, borderRadius: 10, backgroundColor: valid ? Theme.colors.primary : Theme.colors.primary + "15"}}> // Next // // // // // { // // console.warn("A date has been picked: ", selectedDate) // setbirthdate(selectedDate ? moment(selectedDate).format("DD MMM YYYY") : birthdate != null ? birthdate : null) // setdatepicker(false) // }} // onCancel={() => setdatepicker(false)} // /> // {/* // // // // { // setbirthdate(selectedDate ? moment(selectedDate).subtract(1, "days").format("DD MMM YYYY") : birthdate != null ? birthdate : null) // }} // /> // pickerRef = r} // minimumDate={new Date(2018, 1, 1)} // maximumDate={new Date(2018, 12, 31)} // locale={"en"} // timeZoneOffsetInMinutes={undefined} // modalTransparent={true} // animationType={"fade"} // androidMode={"default"} // placeHolderText="Select date" // textStyle={{ color: "green" }} // placeHolderTextStyle={{ color: "#d3d3d3" }} // onDateChange={this.setDate} // disabled={false} // /> // // setdatepicker(false)} style={{padding: 10, marginRight: 5}}> // CANCEL // // { // setagree(false) // setdatepicker(false) // }} style={{padding: 10, marginLeft: 5}}> // OK // // // // // // */} // {/* {datepicker ? { // setdatepicker(false) // setagree(false) // setbirthdate(selectedDate ? moment(selectedDate).format("DD MMM YYYY") : birthdate != null ? birthdate : null) // }} // /> : null} */} // // ); // } const styles = StyleSheet.create({ input: { flex: 1, padding: 0, margin: 5, fontSize: 18, textAlign: 'center', borderBottomColor: Theme.colors.accent, borderBottomWidth: 1.5 } });