import * as React from 'react'; import { TouchableOpacity, View, Text, Image, Alert, Platform } from 'react-native'; import { Container } from 'native-base'; import { connect } from "react-redux"; 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 DB from '../../../components/storage/'; import REQUEST from '../../../components/api/'; import CustomInput from '../../../components/custominput'; import CustomSafeArea from '../../../components/safeArea.component'; class ActivateAccountCard extends React.Component { constructor(props) { super(props) } state = { loading: false, cardnumber: "", valid: false } componentDidMount() { } componentWillUnmount() { } handleRedirect = (res, uuid, SESSION) => { Alert.alert( 'Error', "\n"+res.message+'\n', [ { text: 'No', style: 'cancel', }, { text: 'YES', onPress: async () => { this.props.navigation.navigate("AccountBirthdate", { cardnumber: this.state.cardnumber, deviceUUID: uuid, callback: this.props.route.params.callback, type: "addcard" }) } }, ], {cancelable: true} ); } requestCardValidEnroll = async (successCallback, errorCallback) => { let uuid = await DB.get("deviceUUID") let SESSION = await DB.session() await REQUEST("card_validation_enroll", "post", {}, {}, { card_number: this.state.cardnumber, deviceUUID: uuid }, function(res){ successCallback(res, uuid, SESSION) }, function(error){ errorCallback(error) }) } validateCardEnroll = () => { this.setState({ loading: true }) this.requestCardValidEnroll((success, uuid ,SESSION) => { this.setState({ loading: false }) if(success.status == 0 && success.data.code == 2) { this.props.navigation.navigate("AccountEnrollPin", {card_number: this.state.cardnumber, callback: this.props.route.params.callback, type: this.props.route.params.type}) } else if(success.status == 0 && success.data.code == 4) { Platform.OS == 'ios' ? setTimeout(() => { this.handleRedirect(success, uuid, SESSION) }, 300) : this.handleRedirect(success, uuid, SESSION) } else { this.props.navigation.navigate("AccountEnrollPin", {card_number: this.state.cardnumber, callback: this.props.route.params.callback, type: this.props.route.params.type}) } console.log(success) }, error => { this.setState({ loading: false }) Alert.alert("Error", error.message) }) } onSubmit = () => { if(this.state.valid) { NetInfo.netstatus(isConnected => { if(isConnected){ this.validateCardEnroll() } else { Elements.nointernet2() } }) } } render() { return ( this.props.navigation.goBack()} back={true} /> Enroll Card Have a new card? Please enter your card number. { this.setState({ cardnumber: val, valid: val.length == 16 ? true : false }) }} /> this.onSubmit()} disabled={!this.state.valid} style={{padding: 20, paddingTop: 15, width: Theme.screen.w - 80, 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 ) } } const mapStateToProps = (state) => { return { app_theme: state.appThemeReducer.theme } } export default connect(mapStateToProps, null)(ActivateAccountCard);