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
}
});