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 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 from '../../components/storage/'; import REQUEST from '../../components/api/'; import CustomSafeArea from '../../components/safeArea.component.js'; 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 init = async () => { await setcardnumber(navigation.route.params?.cardnumber) await setdeviceUUID(navigation.route.params?.deviceUUID) await DB.remove("is_guest") } useEffect(() => { init() }, []) const setCardNumber = () => { setvalid(cardnumber.length == 15 ? true : false) } const onAgree = () => { setagree(agree == false ? true : false) 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 onSubmit = async () => { if(valid){ setloading(true) console.log("BDAY",birthdate) console.log("UUID",deviceUUID) console.log("cn",cardnumber) 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){ //MOBILE NUMBER FROM MOBILE API let MOBILE = data.data?.mobile_number //MOBILE NUMBER FROM LOYALTY CMS let STMOBILE = data.data?.state_retrieve.mobile let sessiondata = { birthdate: formatbday, card_number: cardnumber, lcard_uuid: data.data?.lcard_uuid, mobile_number: MOBILE != STMOBILE ? STMOBILE : MOBILE } console.log("LOGIN RES", MOBILE, STMOBILE) setloading(false) console.log("SESSION DATA", sessiondata) DB.setsession(sessiondata, function(res){ navigation.navigation.navigate("LoginSendOTP", { lcard_uuid: data.data?.lcard_uuid, mobile_number: MOBILE != STMOBILE ? STMOBILE : MOBILE }) }, 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 ( Login Have an activated card? {cardnumber} navigation.navigation.navigate("Login")} style={{flex: 0.4, alignSelf: 'flex-end', textAlign: 'right'}}> { setdatepicker(true) }} style={{}}> Birthday {birthdate || "Select Date"} {!agree ? : } I agree to navigation.navigation.navigate("TermsConditions", {screen: "LoginBirthday"})}> 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 { setbirthdate(selectedDate ? moment(selectedDate).format("DD MMM YYYY") : birthdate != null ? birthdate : null) setdatepicker(false) }} onCancel={() => setdatepicker(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) // await DB.remove("is_guest") // } // 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 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){ // //MOBILE NUMBER FROM MOBILE API // let MOBILE = data.data?.mobile_number // //MOBILE NUMBER FROM LOYALTY CMS // let STMOBILE = data.data?.state_retrieve.mobile // let sessiondata = { // birthdate: formatbday, // card_number: cardnumber, // lcard_uuid: data.data?.lcard_uuid, // mobile_number: MOBILE != STMOBILE ? STMOBILE : MOBILE // } // console.log("LOGIN RES", MOBILE, STMOBILE) // setloading(false) // console.log("SESSION DATA", sessiondata) // DB.setsession(sessiondata, function(res){ // navigation.navigation.navigate("LoginSendOTP", { // lcard_uuid: data.data?.lcard_uuid, // mobile_number: MOBILE != STMOBILE ? STMOBILE : MOBILE // }) // }, 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) // }) // } // // if(valid) navigation.navigation.navigate("LoginSendOTP") // } // return ( // // // // // // // // // Login // // Have an activated card? // // // // {cardnumber} // navigation.navigation.navigate("Login")} 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: "LoginBirthday"})}> // 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 } });