import React, {Component} from 'react'; import { ActivityIndicator, Image, Platform, ProgressBarAndroid, ScrollView, StatusBar, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; import I18n from 'react-native-i18n'; import {Appbar, Provider} from 'react-native-paper'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import {Color} from '../../config/Color'; import {Typography} from '../../config/typography'; import * as Utils from '../../utils/DeviceUtils'; import {IlinkEmitter} from "../../utils/events"; import {connect} from "react-redux"; import {bindActionCreators} from "redux"; import {getBankListAction, getBankListReset} from "../../webservice/BankApi"; import {getOperatorListAction, getOperatorListReset} from "../../webservice/WalletApi"; import {store} from "../../redux/store"; const route = require('../../route.json'); let slugify = require('slugify'); class SouscrireAssuranceUser extends Component { constructor(props) { super(props); IlinkEmitter.on("langueChange", this.updateLangue.bind(this)); this.state = { options: this.props.navigation.state.params.optionSelect, wallet: store.getState().walletDetailReducer.result.response } console.log("OPERATEUR OPTION PROPS", this.props); console.log("OPERATEUR OPTION STATE", this.state); } updateLangue() { this.props.navigation.setParams({name: I18n.t('WALLET')}) this.forceUpdate(); } static navigationOptions = ({navigation}) => ({ header: null, headerMode: 'none', headerTitle: null, activeColor: '#f0edf6', inactiveColor: '#3e2465', barStyle: {backgroundColor: '#694fad'}, drawerLabel: I18n.t('INSURANCE_LIST'), drawerIcon: ({tintColor}) => ( ) }); redirectToRoute = (item) => { /* console.log("Item selected", item); if (this.state.options.length > 0) { this.props.navigation.push(this.state.options[0].screen, { title: item.operator_name, type: this.state.options[0].type, operator_id: item.id_operator, typeOperator: this.state.operatorType }); } else { if (this.state.user.category === 'geolocated') this.props.navigation.navigate(route.envoieWalletToBankAgent, {bank: item}); else this.props.navigation.navigate(route.envoieWalletToBankUser, {bank: item}); } */ } renderLoader = () => { return ( {Platform.OS === 'android' ? ( <> {I18n.t('LOADING_DOTS')} ) : <> {I18n.t('LOADING_DOTS')} } ) } renderItem = (item, index) => { return ( { this.redirectToRoute(item); }}> {item.title} {I18n.t('AMOUNT')}: {`${item.amount}`} ) } renderBankList = () => { const {result, error} = this.props; const {options} = this.state; return ( Array.isArray(options) && (options.length) > 0 ? ( { options.map((item, index) => ( this.renderItem(item, index) )) } ) : ( {I18n.t('NO_OPERATOR_AVAILABLE')} ) ) } renderItemElement = (item, index) => { return ( { this.props.navigation.navigate(item.screen, { type: item.type, title: item.title }) }}> {item.title} {item.title} ) } renderList = () => { const {options} = this.state; return ( { options.map((item, index) => ( this.renderItem(item, index) )) } ); } render() { console.log("OPERATEUR OPTION STATE", this.state.options.length); return ( { this.props.navigation.pop() }} /> { this.renderBankList() } ); } } const mapStateToProps = state => ({ loading: state.getListOperatorReducer.loading, result: state.getListOperatorReducer.result, error: state.getListOperatorReducer.error, }); const mapDispatchToProps = dispatch => bindActionCreators({ getBankListAction, getBankListReset, getOperatorListAction, getOperatorListReset, }, dispatch); export default connect(mapStateToProps, mapDispatchToProps)(SouscrireAssuranceUser); const styles = StyleSheet.create({ container: { flex: 1, }, paymentItem: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", borderBottomWidth: 1, paddingVertical: 5, width: "100%", marginBottom: 15 }, iconContent: { width: 60, marginRight: 10, alignItems: "center" }, item: { paddingVertical: 15, borderBottomWidth: 1, flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, /* item: { paddingVertical: 15, borderBottomWidth: 1, flexDirection: "row", justifyContent: "space-between", alignItems: "center" }, */ lottie: { width: 540, height: 240 }, checkDefault: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", borderBottomWidth: 1, paddingVertical: 10, marginTop: 5 }, transactionContainer: { flexDirection: 'row', paddingTop: 10, }, containerTouch: { flex: 1, flexDirection: 'row', alignItems: 'center', shadowColor: Color.borderColor, borderColor: Color.borderColor, borderWidth: 0.5, shadowOffset: {width: 1.5, height: 1.5}, shadowOpacity: 1.0, elevation: 5, borderRadius: 10, backgroundColor: Color.cardBackgroundColor }, contain: { flexDirection: 'row', justifyContent: 'space-between', }, imageBanner: { marginTop: 15, marginLeft: 5, width: Utils.scaleWithPixel(30), height: Utils.scaleWithPixel(30) }, content: { height: Utils.scaleWithPixel(60), paddingHorizontal: 10, justifyContent: 'space-between', alignItems: 'flex-start', flex: 1, }, contentTitle: { paddingTop: 12, } });