import React, {Component} from 'react'; import { ActivityIndicator, Image, Platform, ProgressBarAndroid, ScrollView, StatusBar, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import I18n from 'react-native-i18n' import {Color} from '../../config/Color'; import {baseUrl} from '../../webservice/IlinkConstants'; import {IlinkEmitter} from "../../utils/events"; import {Appbar, Provider} from 'react-native-paper'; import {getWalletActivated} from '../../webservice/WalletApi'; import {connect} from 'react-redux'; import {readUser} from '../../webservice/AuthApi'; import {bindActionCreators} from 'redux'; import {Typography} from '../../config/typography'; import { ScreenComponent } from '../../components/ScreenComponent'; const route = require('./../../route.json'); let slugify = require('slugify'); class WalletSelect extends Component { constructor(props) { super(props); slugify.extend({'+': 'plus'}); IlinkEmitter.on("langueChange", this.updateLangue.bind(this)); this.state = { result: null, isDataLoaded: false, agentId: null } } static navigationOptions = ({navigation}) => ({ header: null, headerMode: 'none', headerTitle: null, activeColor: '#f0edf6', inactiveColor: '#3e2465', barStyle: {backgroundColor: '#694fad'}, drawerLabel: I18n.t('CREDIT_MANAGE'), drawerIcon: ({tintColor}) => ( ) }); componentDidMount() { readUser().then((user) => { if (user) { if (user !== undefined) { if (user.phone !== undefined) { this.props.getWalletActivated(user.agentId); this.setState({agentId: user.agentId}); } } } }); } /* refresh() { readUser().then((user) => { if (user) { if (user !== undefined) { if (user.phone !== undefined) { this.props.getWalletActivated(user.agentId); this.setState({ agentId: user.agentId }); } } } }); } */ updateLangue() { this.props.navigation.setParams({name: I18n.t('WALLET')}) this.forceUpdate() } renderLoader = () => { return ( {Platform.OS === 'android' ? ( <> {I18n.t('LOADING_DOTS')} ) : <> {I18n.t('LOADING_DOTS')} } ) } renderWalletItem = (item) => { let icon = `${baseUrl}/datas/img/network/${slugify(item.network, {lower: true})}-logo.png`; let itemToSend = item; itemToSend.agentId = this.state.agentId; return ( this.props.navigation.navigate('walletDetail', { wallet: itemToSend,/* onRefreshDetail: () => this.refresh() */ })}> {item.network} {I18n.t('COUNTRY')}: {item.country} ) } renderWalletList = () => { const {result, error} = this.props; if (error !== null) { if (typeof error.data !== 'undefined') { return ( {error.data.error} ) } else { return ( {error} ) } } if (result !== null) { if (result.response !== null) { return ( Array.isArray(result.response) && (result.response.length) > 0 ? ( { result.response.map((item) => ( this.renderWalletItem(item) )) } ) : ( {I18n.t('NO_WALLET_ACTIVED')} ) ) } } } render() { console.log("WALLET PROPS", this.props); return ( { this.props.navigation.pop() }} /> { this.props.loading ? this.renderLoader() : this.renderWalletList() } ); } } const mapStateToProps = state => ({ loading: state.walletReducer.loading, result: state.walletReducer.result, error: state.walletReducer.error }); const mapDispatchToProps = dispatch => bindActionCreators({ getWalletActivated }, dispatch); export default connect(mapStateToProps, mapDispatchToProps)(WalletSelect); const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: Color.containerBackgroundColor, }, paymentItem: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", borderBottomWidth: 1, paddingVertical: 5, width: "100%", marginBottom: 15 }, iconContent: { width: 60, marginRight: 10, alignItems: "center" } });