InstallmentMyCardDetailContainer.js 3.51 KB
'use strict'

import React, {Component} from 'react';
import {
    StyleSheet,
    Dimensions,
    Platform,
    View,
    NativeModules,
    InteractionManager,
    NativeAppEventEmitter,
    Text,
    ListView,
    TouchableOpacity,
    Alert,
} from 'react-native'

import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
import {Map} from 'immutable';
import * as cardDetailActions from '../reducers/bankCardDetail/cardDetailActions';
import ServerError from '../components/installment/ServerError';
import BankCardDetail from '../components/installment/BankCardDetail';


const actions = [
    cardDetailActions,
];
function mapStateToProps(state) {
    return {
        ...state
    };
}
function mapDispatchToProps(dispatch) {

    const creators = Map()
        .merge(...actions)
        .filter(value => typeof value === 'function')
        .toObject();

    return {
        actions: bindActionCreators(creators, dispatch),
        dispatch
    };
}
class InstallmentMyCardDetailContainer extends Component {

    constructor(props) {
        super(props);
        this.onPressChangeCard = this.onPressChangeCard.bind(this);
        this.onPressReleaseCard = this.onPressReleaseCard.bind(this);
        this._reloadPage = this._reloadPage.bind(this);

    }

    _reloadPage() {
        let cardIdNo = this.props.myCardDetail.cardIdNo;
        this.props.actions.getBankDetail(cardIdNo);
    }

    componentDidMount() {
        let cardIdNo = this.props.myCardDetail.cardIdNo;
        this.props.actions.getBankDetail(cardIdNo);
    }

    onPressReleaseCard(){
        Alert.alert(
            '',
            "你确定要解除绑定此卡吗?解除绑定后该银行卡将不出现在还款银行卡列表中。",
            [
              {text: '取消', onPress: () => {}},
              {text: '确定', onPress: () => {
                        let cardIdNo = this.props.myCardDetail.cardIdNo;
                        this.props.actions.unbindBankCard && this.props.actions.unbindBankCard(cardIdNo);
                    }
              },
            ]
        );
    }

    onPressChangeCard(){
        Alert.alert(
            '',
            "你确定要设置该银行卡为主卡吗?确定设置后原主卡将自动修改为副卡。",
            [
              {text: '取消', onPress: () => {}},
              {text: '确定', onPress: () => {
                        let cardIdNo = this.props.myCardDetail.cardIdNo;
                        this.props.actions.toggleBankCard && this.props.actions.toggleBankCard(cardIdNo);
                    }
              },
            ]
        );
        

    }

    render() {

        let {error} = this.props.myCardDetail;
        if (error) {
            return (
                <ServerError
                    reloadPage={this._reloadPage}
                />
            );
        }

        let cardIdNo = this.props.myCardDetail.cardIdNo;
        let cardInfo = this.props.myCardDetail.cardInfo;

        return (
            <BankCardDetail
                style={styles.container}
                cardInfo={cardInfo}
                onPressChangeCard={this.onPressChangeCard}
                onPressReleaseCard={this.onPressReleaseCard}
                showToast={this.props.myCardDetail.showToast}
                showToastText={this.props.myCardDetail.showToastText}
            />
        );
    }
}
let styles = StyleSheet.create({
    container: {
        flex: 1,
    },


});

export default connect(mapStateToProps, mapDispatchToProps)(InstallmentMyCardDetailContainer);