758 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			758 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /**
 | |
|  * Sample React Native App
 | |
|  * https://github.com/facebook/react-native
 | |
|  *
 | |
|  * @format
 | |
|  * @flow
 | |
|  */
 | |
| 
 | |
| 
 | |
| import React, {Component} from 'react';
 | |
| import {Alert, AsyncStorage, StyleSheet, Text, TouchableOpacity, View} from 'react-native';
 | |
| import Icon from 'react-native-vector-icons/Ionicons';
 | |
| import {responsiveFontSize, responsiveHeight, responsiveWidth} from 'react-native-responsive-dimensions';
 | |
| import {primary, primaryDarkAdvanced} from './../../utils/theme.json';
 | |
| import {disconnect, readUser, removeUser} from './../../webservice/AuthApi';
 | |
| import I18n from 'react-native-i18n'
 | |
| import Button from 'apsl-react-native-button'
 | |
| import {IlinkEmitter} from "./../../utils/events"
 | |
| import {SafeAreaView} from 'react-navigation';
 | |
| import DeviceInfo from "react-native-device-info"
 | |
| import Configuration from "../../webservice/persistences/Configuration";
 | |
| import {ScrollView} from 'react-native-gesture-handler';
 | |
| import _ from "lodash";
 | |
| 
 | |
| const route = require("./../../route.json")
 | |
| require('./../../utils/Translations')
 | |
| var DBEvents = require('react-native-db-models').DBEvents
 | |
| let theme = require('./../../utils/theme.json')
 | |
| 
 | |
| export default class OptionsMenu extends Component {
 | |
| 
 | |
|     static navigatorStyle = {
 | |
|         statusBarColor: primaryDarkAdvanced,
 | |
|     };
 | |
| 
 | |
|     constructor(props) {
 | |
|         super(props);
 | |
|         this.state = this.initState();
 | |
|         IlinkEmitter.on("menuLink", this.onMenuNavigationEvent.bind(this))
 | |
|         IlinkEmitter.on("userconnect", this.onUserConnect.bind(this))
 | |
|         IlinkEmitter.on("userdisconnect", this.hideSideMenu.bind(this))
 | |
|         IlinkEmitter.on("langueChange", this.updateLangue.bind(this))
 | |
|         this.configuration = new Configuration();
 | |
|         readUser().then((user) => {
 | |
|             if (user !== null && user !== undefined) {
 | |
|                 this.setState({user});
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| 
 | |
| 
 | |
|     retrieveAndroidInformation() {
 | |
|         this.configuration._getData().then((lang) => {
 | |
|             if (lang) {
 | |
|                 I18n.locale = lang
 | |
|                 readUser().then((result) => {
 | |
|                     setTimeout(() => {
 | |
|                         this.updateUser(result);
 | |
|                     }, 3000)
 | |
|                 })
 | |
|             } else {
 | |
|                 let code = DeviceInfo.getDeviceLocale();
 | |
|                 I18n.locale = code.toLowerCase()
 | |
|                 readUser().then((result) => {
 | |
|                     setTimeout(() => {
 | |
|                         this.updateUser(result);
 | |
|                     }, 3000)
 | |
|                 }).catch((e) => {
 | |
|                     this.props.navigation.navigate("Auth")
 | |
|                 });
 | |
|             }
 | |
|         }).catch((e) => {
 | |
|             let code = DeviceInfo.getDeviceLocale()
 | |
|             I18n.locale = code.toLowerCase()
 | |
|             readUser().then((result) => {
 | |
|                 setTimeout(() => {
 | |
|                     this.updateUser(result);
 | |
|                 }, 3000)
 | |
|             }).catch((e) => {
 | |
|                 this.props.navigation.navigate("Auth")
 | |
|             });
 | |
| 
 | |
| 
 | |
|         })
 | |
| 
 | |
|         return ""
 | |
|     }
 | |
| 
 | |
|     componentDidMount() {
 | |
|         const items = this.props.navigation.router.childRouters.sta.childRouters;
 | |
|         console.log("ITEMS", this.props);
 | |
|         this.setState({items: items})
 | |
|         this.retrieveAndroidInformation()
 | |
| 
 | |
| 
 | |
|     }
 | |
| 
 | |
|     updateLangue() {
 | |
|         this.setState({lang: "change"})
 | |
|         this.forceUpdate()
 | |
|     }
 | |
| 
 | |
|     componentWillUnmount() {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     onMenuNavigationEvent(menuOption) {
 | |
|         /* Navigation.mergeOptions(this.props.componentId,{
 | |
|              sideMenu: {
 | |
|                  left: {
 | |
|                      visible: false,
 | |
|                  }
 | |
|              }
 | |
|          })
 | |
|         switch (menuOption){
 | |
|              case "home":{
 | |
|                  this.setState({currentId:0})
 | |
|              }
 | |
|                  break;
 | |
|              case "userInfo":{
 | |
|                  this.setState({currentId:1})
 | |
|              }
 | |
|          }*/
 | |
|     }
 | |
| 
 | |
|     onUserConnect() {
 | |
|         readUser().then((user) => {
 | |
|             if (user !== null && user !== undefined) {
 | |
|                 this.updateUser(user);
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     onNavigatorEvent(event) {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     hideSideMenu() {
 | |
|         /*  Navigation.mergeOptions("drawer", {
 | |
|               sideMenu: {
 | |
|                   left: {
 | |
|                       visible: false,
 | |
|                       enabled:false
 | |
|                   }
 | |
|               }
 | |
|           });*/
 | |
|     }
 | |
| 
 | |
|     initState() {
 | |
|         return {
 | |
|             user: null,
 | |
|             menu: [],
 | |
|             currentId: 0,
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     getGeolocatedUserMenu() {
 | |
|         return [
 | |
|             {title: I18n.t('MAP'), id: 0, key: 0, icon: 'md-map', active: true}
 | |
|             , {title: I18n.t('MY_ACCOUNT'), id: 1, key: 1, icon: 'md-person', active: false}
 | |
|             , {title: I18n.t('WALLET'), id: 6, key: 6, icon: 'md-wallet-outline', active: false}
 | |
|             , {title: I18n.t('CREDIT_MANAGE'), id: 2, key: 2, icon: 'md-card', active: false}
 | |
|             /*
 | |
|                         , {title: I18n.t('ADD_NETWORK'), id: 11, key: 11, icon: 'md-people', active: false}
 | |
|             */
 | |
|             , {title: I18n.t('CHANGE_INFORMATION'), id: 13, key: 13, icon: 'md-person', active: false}
 | |
|             , {title: I18n.t('NOTIFICATIONS'), id: 3, key: 3, icon: 'md-notifications', active: false}
 | |
|             , {title: I18n.t('CONFIGURATIONS'), id: 4, icon: 'md-settings', active: false}]
 | |
|     }
 | |
| 
 | |
|     getSuperUserMenu() {
 | |
|         return [
 | |
|             {title: I18n.t('MAP'), id: 0, key: 0, icon: 'md-map', active: true}
 | |
|             , {title: I18n.t('MY_ACCOUNT'), id: 1, key: 1, icon: 'md-person', active: false}
 | |
|             , {title: I18n.t('WALLET'), id: 6, key: 6, icon: 'md-wallet-outline', active: false}
 | |
|             , {title: I18n.t('CREDIT_MANAGE'), id: 2, key: 2, icon: 'md-card', active: false}
 | |
|             , {title: I18n.t('GROUP_MANAGE'), id: 5, key: 5, icon: 'md-people', active: false}
 | |
|             /*, {title: I18n.t('ACTIF_MANAGE'), id: 7, key: 6, icon: 'md-list-box', active: false}*/
 | |
|             , {title: I18n.t('NOTIFICATIONS'), id: 3, key: 3, icon: 'md-notifications', active: false}
 | |
|             , {title: I18n.t('CONFIGURATIONS'), id: 4, icon: 'md-settings', active: false}]
 | |
|     }
 | |
| 
 | |
|     getHyperUsermenu() {
 | |
|         return [
 | |
|             {title: I18n.t('MAP'), id: 0, key: 0, icon: 'md-map', active: true}
 | |
|             , {title: I18n.t('MY_ACCOUNT'), id: 1, key: 1, icon: 'md-person', active: false}
 | |
|             , {title: I18n.t('WALLET'), id: 6, key: 6, icon: 'md-wallet-outline', active: false}
 | |
|             , {title: I18n.t('CREDIT_MANAGE'), id: 2, key: 2, icon: 'md-card', active: false}
 | |
|             , {title: I18n.t('GROUP_MANAGE'), id: 5, key: 5, icon: 'md-people', active: false}
 | |
|             , {title: I18n.t('NOTIFICATIONS'), id: 3, key: 3, icon: 'md-notifications', active: false}
 | |
|             , {title: I18n.t('CONFIGURATIONS'), id: 4, icon: 'md-settings', active: false}]
 | |
|     }
 | |
| 
 | |
|     updateUser(user) {
 | |
|         let menu = [];
 | |
|         if (user !== undefined) {
 | |
|             console.log("USER", user.category);
 | |
|             /*  Navigation.mergeOptions("drawer", {
 | |
|                   sideMenu: {
 | |
|                       left: {
 | |
|                           visible: false,
 | |
|                           enabled:true
 | |
|                       }
 | |
|                   }
 | |
|               });*/
 | |
|             if (user.category !== undefined) {
 | |
|                 switch (user.category) {
 | |
|                     case "geolocated":
 | |
|                         menu = this.getGeolocatedUserMenu();
 | |
|                         break;
 | |
|                     case "super":
 | |
|                         menu = this.getSuperUserMenu();
 | |
|                         break;
 | |
|                     case "hyper":
 | |
|                         menu = this.getHyperUsermenu();
 | |
|                         break;
 | |
|                 }
 | |
|             } else {
 | |
|                 menu = this.getUserMenu();
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         this.setState({user: user, menu: menu});
 | |
|     }
 | |
| 
 | |
|     getUserMenu() {
 | |
|         return [
 | |
|             {title: I18n.t('MAP'), id: 0, key: 0, icon: 'md-map', active: true}
 | |
|             , {title: I18n.t('MY_ACCOUNT'), id: 1, key: 1, icon: 'md-person', active: false}
 | |
|             , {title: I18n.t('NOTIFICATIONS'), id: 3, key: 3, icon: 'md-notifications', active: false}
 | |
|             , {title: I18n.t('CONFIGURATIONS'), id: 4, icon: 'md-settings', active: false}]
 | |
|     }
 | |
| 
 | |
|     redirectToScreen = (item) => {
 | |
|         console.log("Item Menu Click", item);
 | |
| 
 | |
|         if (this.state.user === null)
 | |
|             return;
 | |
|         else {
 | |
|             switch (this.state.user.category) {
 | |
|                 case "super":
 | |
|                     if (item === "walletSelect")
 | |
|                         item = "walletDetail";
 | |
|                     this.props.navigation.navigate(item, {agentId: this.state.user.agentId});
 | |
|                     break;
 | |
|                 case "hyper":
 | |
|                     if (item === "walletSelect")
 | |
|                         item = "walletDetail";
 | |
|                     this.props.navigation.navigate(item, {agentId: this.state.user.agentId});
 | |
| 
 | |
|                     break;
 | |
|                 case "geolocated":
 | |
|                     if (item === "walletSelect")
 | |
|                         item = "walletDetail";
 | |
|                     this.props.navigation.navigate(item, {agentId: this.state.user.agentId});
 | |
|                     break;
 | |
| 
 | |
|                 default:
 | |
|                     if (item === "walletSelect")
 | |
|                         item = "walletDetailUser";
 | |
|                     this.props.navigation.navigate(item, {userId: this.state.user.id});
 | |
| 
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
|     // _renderItem = (item) => {
 | |
|     //     if (this.state.user === null) {
 | |
|     //         return null
 | |
|     //     } else {
 | |
| 
 | |
|     //         if (item === "creditrequest" || item === 'historyItemDetails' || item === 'filter' || item === 'networks' || item === 'walletDetail' || item === 'walletDetailUser'
 | |
|     //             || item === 'walletDepot' || item === 'walletRetrait' || item === 'createIdentification' || item === 'walletOptionSelect' || item === 'validateIdentification'
 | |
|     //             || item === 'createIdentificationUser' || item === 'operateurOptionSelect' || item === 'paiementFacture' || item === 'envoieWalletToWalletUser'
 | |
|     //             || item === 'envoieWalletToCashUser' || item === 'linkCard' || item === 'envoieWalletToCardUser' || item === 'envoieWalletToBankUser' || item === 'retraitWalletVersCashUser'
 | |
|     //             || item === 'retraitCarteVersWalletUser' || item === 'retraitEnCashAgent' || item === 'retraitCarteVersCashAgent' || item === 'envoieCashVersWalletAgent'
 | |
|     //             || item === 'envoieCashVersAutreWalletAgent' || item === 'retraitCarteVersCashUser' || item === 'envoiCashVersCashAgent' || item === 'envoieCashVersCashAgent'
 | |
|     //             || item === 'envoieCashVersCarteAgent' || item === 'modifyIdentificationUser' || item === 'createGroupNanoCredit' || item === 'groupNanoCredit' || item === 'demandeValidationGroupe'
 | |
|     //             || item === 'adhererGroupNanoCredit' || item === 'myNanoCreditGroup' || item === 'askNanoCredit' || item === 'refundNanoCreditUser' || item === 'cautionNanoCreditAgent'
 | |
|     //             || item === 'epargnerArgentUser' || item === 'askNanoCredit' || item === 'casserEpargneUser' || item === 'envoieWalletToBankAgent' || item === 'reattachAccountUser'
 | |
|     //             || item === 'avisImpositionDetail' || item === 'modifyTaxeImposition' || item === 'ordreRecette' || item === 'ordreRecetteDetail' || item === 'numeroQuitance'
 | |
|     //             || item === 'numeroQuitanceDetail' || item === 'walletDetailUser' || item === 'addNetwork' || item === 'penalteTaxe' || item === 'penalityTaxeDetail' || item === 'historicScreen'
 | |
|     //             || item === 'historicScreenHyperviseur' || item === 'creditrequestRefillAgent' || item === 'webviewScreen') {
 | |
|     //             return null
 | |
|     //         } else if (_.isNil(this.state.user.category) && item === 'walletSelect') {
 | |
|     //             return null;
 | |
|     //         } else {
 | |
|     //             const color = this.state.currentId === item.id ? theme.accent : "grey"
 | |
|     //             //console.log("ITEM OPTION MENU", item);
 | |
|     //             return (
 | |
|     //                 <TouchableOpacity onPress={() => {
 | |
|     //                     this.props.navigation.toggleDrawer();
 | |
|     //                     this.setState({currentId: item.id});
 | |
|     //                     this.redirectToScreen(item);
 | |
|     //                 }}
 | |
|     //                 >
 | |
|     //                     <View
 | |
|     //                         style={items.content}
 | |
|     //                     >
 | |
|     //                         <Icon
 | |
|     //                             name={this.getIcon(item)}
 | |
|     //                             size={32}
 | |
|     //                         />
 | |
|     //                         <Text style={{
 | |
|     //                             marginLeft: 20,
 | |
|     //                             fontSize: 16,
 | |
|     //                         }}>{this.getNameItems(item)}
 | |
|     //                         </Text>
 | |
|     //                     </View></TouchableOpacity>)
 | |
|     //         }
 | |
|     //     }
 | |
|     // };
 | |
|     
 | |
|     
 | |
|     _renderItem = (item) => {
 | |
|         if (this.state.user === null) {
 | |
|             return null
 | |
|         } else {
 | |
| 
 | |
|             if (item === "creditrequest" || item === 'historyItemDetails' || item === 'filter' || item === 'networks' || item === 'walletDetail' || item === 'walletDetailUser'
 | |
|                 || item === 'walletDepot' || item === 'walletRetrait' || item === 'createIdentification' || item === 'walletOptionSelect' || item === 'validateIdentification'
 | |
|                 || item === 'createIdentificationUser' || item === 'operateurOptionSelect' || item === 'paiementFacture' || item === 'envoieWalletToWalletUser'
 | |
|                 || item === 'envoieWalletToCashUser' || item === 'linkCard' || item === 'envoieWalletToCardUser' || item === 'envoieWalletToBankUser' || item === 'retraitWalletVersCashUser'
 | |
|                 || item === 'retraitCarteVersWalletUser' || item === 'retraitEnCashAgent' || item === 'retraitCarteVersCashAgent' || item === 'envoieCashVersWalletAgent'
 | |
|                 || item === 'envoieCashVersAutreWalletAgent' || item === 'retraitCarteVersCashUser' || item === 'envoiCashVersCashAgent' || item === 'envoieCashVersCashAgent'
 | |
|                 || item === 'envoieCashVersCarteAgent' || item === 'modifyIdentificationUser' || item === 'createGroupNanoCredit' || item === 'groupNanoCredit' || item === 'demandeValidationGroupe'
 | |
|                 || item === 'adhererGroupNanoCredit' || item === 'myNanoCreditGroup' || item === 'askNanoCredit' || item === 'refundNanoCreditUser' || item === 'cautionNanoCreditAgent'
 | |
|                 || item === 'epargnerArgentUser' || item === 'askNanoCredit' || item === 'casserEpargneUser' || item === 'envoieWalletToBankAgent' || item === 'reattachAccountUser'
 | |
|                 || item === 'avisImpositionDetail' || item === 'modifyTaxeImposition' || item === 'ordreRecette' || item === 'ordreRecetteDetail' || item === 'numeroQuitance'
 | |
|                 || item === 'numeroQuitanceDetail' || item === 'walletDetailUser' || item === 'addNetwork' || item === 'penalteTaxe' || item === 'penalityTaxeDetail' || item === 'historicScreen'
 | |
|                 || item === 'historicScreenHyperviseur' || item === 'creditrequestRefillAgent' || item === 'webviewScreen') {
 | |
|                 return null
 | |
|             } else if (_.isNil(this.state.user.category) && item === 'walletSelect') {
 | |
|                 return null;
 | |
|            
 | |
|             } else {
 | |
|                 const color = this.state.currentId === item.id ? theme.accent : "grey"
 | |
|                 //console.log("ITEM OPTION MENU", item);
 | |
|                 console.warn("USER",this.state.user)
 | |
|              if (this.state.user.role) {
 | |
|                 if (this.state.user.role === 'REFILL_AGENT' && (item === 'superviseurActifGroup' || item === 'superviseurgroup'))
 | |
|                     return null; 
 | |
|                 }
 | |
|                 return (
 | |
|                     <TouchableOpacity onPress={() => {
 | |
|                         this.props.navigation.toggleDrawer();
 | |
|                         this.setState({currentId: item.id});
 | |
|                         this.redirectToScreen(item);
 | |
|                     }}
 | |
|                     >
 | |
|                         <View
 | |
|                             style={items.content}
 | |
|                         >
 | |
|                             <Icon
 | |
|                                 name={this.getIcon(item)}
 | |
|                                 size={32}
 | |
|                             />
 | |
|                             <Text style={{
 | |
|                                 marginLeft: 20,
 | |
|                                 fontSize: 16,
 | |
|                             }}>{this.getNameItems(item)}
 | |
|                             </Text>
 | |
|                         </View>
 | |
|                         </TouchableOpacity>
 | |
|                     )
 | |
|             }
 | |
|         }
 | |
|     };_onPress = ((item, index) => {
 | |
|         key={index}
 | |
|         this.setState({currentId: item.id})
 | |
|         let current = this.state.menu.filter((item) => {
 | |
|             return item.active
 | |
|         })[0]
 | |
|         current.active = false;
 | |
|         item.active = true;
 | |
|         let newMenu = [];
 | |
|         this.state.menu.forEach(function (it) {
 | |
|                 if (it.id === current.id) newMenu.push(current)
 | |
|                 else if (it.id === item.id) newMenu.push(item)
 | |
|                 else newMenu.push(it)
 | |
|             }
 | |
|         )
 | |
|         this.setState({menu: newMenu})
 | |
|         /*    switch(item.id){
 | |
|                 case 2:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                      component: {
 | |
|                          name: histo,
 | |
|                      },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                title: {
 | |
|                                    text: I18n.t('CREDIT_MANAGE')
 | |
|                                }
 | |
|                            }
 | |
|                        }
 | |
|                });
 | |
|                  break;
 | |
|                 case 0:
 | |
|                     Navigation.popToRoot(route.stackRoot)
 | |
|                    IlinkEmitter.emit("menuLink","home");
 | |
|                 break;
 | |
|                 case 1:
 | |
|                     Navigation.push(route.stackRoot,{
 | |
|                         component: {
 | |
|                             name:useraccount,
 | |
|            },
 | |
|                         options: {
 | |
|                             sideMenu:{
 | |
|                                 visibility:false
 | |
|                             },
 | |
|                             topBar: {
 | |
|                                 title: {
 | |
|                                     text:I18n.t('MY_ACCOUNT')
 | |
|                                 },
 | |
|                                 hideOnScroll: true,
 | |
| 
 | |
|                             }
 | |
|                         }
 | |
|                     });
 | |
|                     IlinkEmitter.emit("menuLink","userInfo");
 | |
|                    break;
 | |
|                case 3:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:notification,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                title: {
 | |
|                                    text:I18n.t('NOTIFICATION')
 | |
| 
 | |
|                                }
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|                    IlinkEmitter.emit("menuLink","notification");
 | |
| 
 | |
|                    break;
 | |
|                case 4:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:configurations,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                title: {
 | |
|                                    text:I18n.t('CONFIGURATIONS')
 | |
| 
 | |
|                                }
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|                    IlinkEmitter.emit("menuLink","config");
 | |
|                    break;
 | |
|                case 5:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:route.superviseurgroup,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                title: {
 | |
|                                    text:I18n.t('GROUP_MANAGE')
 | |
| 
 | |
|                                }
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|                    IlinkEmitter.emit("menuLink","manage_group");
 | |
| 
 | |
|                    break;
 | |
|                case 7:     Navigation.push(route.stackRoot,{
 | |
|                    component: {
 | |
|                        name:route.credrequester,
 | |
|                    },
 | |
|                    options: {
 | |
|                        topBar: {
 | |
|                          visible:false
 | |
|                        }
 | |
|                    }
 | |
|                });
 | |
|                    break;
 | |
|                case 11:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:route.addNetwork,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                visible:false
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|                    break;
 | |
|                case 12:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:route.generateNetwork,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                visible:false
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|                    break;
 | |
|                case 13:
 | |
|                    Navigation.push(route.stackRoot,{
 | |
|                        component: {
 | |
|                            name:route.updateinfo,
 | |
|                        },
 | |
|                        options: {
 | |
|                            topBar: {
 | |
|                                visible:false
 | |
|                            }
 | |
|                        }
 | |
|                    });
 | |
|            };
 | |
|              Navigation.mergeOptions(this.props.componentId,{
 | |
|                  sideMenu: {
 | |
|                      left: {
 | |
|                          visible: false,
 | |
|                      }
 | |
|                  }
 | |
|              })
 | |
|       */
 | |
|     });
 | |
| 
 | |
|     getNameItems(item) {
 | |
| 
 | |
|         let icon = item
 | |
|         switch (item) {
 | |
|             case "home":
 | |
|                 icon = I18n.t('MAP')
 | |
|                 break
 | |
|             case 'useraccount':
 | |
|                 icon = I18n.t('MY_ACCOUNT')
 | |
|                 break
 | |
|             case 'walletSelect':
 | |
|                 icon = I18n.t('WALLET')
 | |
|                 break
 | |
|             case 'Historique':
 | |
|                 icon = I18n.t('CREDIT_MANAGE')
 | |
|                 break
 | |
|             case "superviseurgroup":
 | |
|                 icon = I18n.t('GROUP_MANAGE')
 | |
|                 break
 | |
|             case "superviseurActifGroup":
 | |
|                 icon = I18n.t('ACTIF_MANAGE')
 | |
|                 break
 | |
|             case "updateinformation":
 | |
|                 icon = I18n.t("CHANGE_INFORMATION")
 | |
|                 break
 | |
|             case 'notificationview':
 | |
|                 icon = I18n.t('NOTIFICATIONS')
 | |
|                 break
 | |
|             case 'configuration':
 | |
|                 icon = I18n.t('CONFIGURATIONS')
 | |
|                 break;
 | |
|             case 'addNetwork':
 | |
|                 icon = I18n.t('ADD_NETWORK')
 | |
|                 break
 | |
|             case 'about':
 | |
|                 icon = I18n.t('ABOUT')
 | |
|         }
 | |
|         return icon;
 | |
|     }
 | |
| 
 | |
|     getIcon(item) {
 | |
|         let icon = "md-map"
 | |
|         switch (item) {
 | |
|             case "home":
 | |
|                 icon = "md-map"
 | |
|                 break
 | |
|             case 'useraccount':
 | |
|                 icon = "md-person"
 | |
|                 break
 | |
|             case 'walletSelect':
 | |
|                 icon = "md-wallet"
 | |
|                 break;
 | |
|             case 'actifManage':
 | |
|                 icon = "md-list-box"
 | |
|                 break
 | |
|             case 'Historique':
 | |
|                 icon = "md-card"
 | |
|                 break
 | |
|             case "superviseurgroup":
 | |
|                 icon = "md-people"
 | |
|                 break
 | |
|             case "superviseurActifGroup":
 | |
|                 icon = "md-stats"
 | |
|                 break
 | |
|             case 'notificationview':
 | |
|                 icon = "md-notifications";
 | |
|                 break
 | |
|             case "updateinformation":
 | |
|                 icon = "md-people"
 | |
|                 break
 | |
|             case 'configuration':
 | |
|                 icon = 'md-settings'
 | |
|                 break;
 | |
|             case 'addNetwork':
 | |
|                 icon = "md-people"
 | |
|                 break
 | |
|             case 'about':
 | |
|                 icon = 'md-contacts';
 | |
|                 break;
 | |
|         }
 | |
|         return icon;
 | |
|     }
 | |
| 
 | |
|     render() {
 | |
|         var name = this.state.user ? this.state.user.firstname : "";
 | |
|         const surname = this.state.user ? this.state.user.lastname : "";
 | |
|         if (!this.state.lang && this.state.lang !== "change")
 | |
|             return (
 | |
|                 <View style={styles.container}>
 | |
|                     <View
 | |
|                         style={styles.headercontent}
 | |
|                     >
 | |
|                         <Text style={styles.headerTitle}>{name}</Text>
 | |
|                         <Text style={styles.headerTitle}>{surname}</Text>
 | |
|                         <Text style={styles.headerPhone}>{this.state.user ? "" + this.state.user.phone : ""}</Text>
 | |
|                     </View>
 | |
|                     <ScrollView style={{
 | |
|                         flex: 1, height: responsiveHeight(40)
 | |
|                     }}>
 | |
|                         <SafeAreaView forceInset={{top: 'always', horizontal: 'never'}}>
 | |
|                             {
 | |
|                                 this.state.items && Object.keys(this.state.items).map((item, key) => {
 | |
|                                     return this._renderItem(item)
 | |
|                                 })
 | |
|                             }
 | |
|                         </SafeAreaView>
 | |
|                     </ScrollView>
 | |
|                     <Button
 | |
|                         textStyle={styles.btntext}
 | |
|                         style={styles.btnDeconnect}
 | |
|                         onPress={() => this.userDeconnect()}
 | |
|                     >{I18n.t('DISCONNEXION')}</Button>
 | |
|                 </View>
 | |
|             )
 | |
|         else {
 | |
|             setTimeout(() => this.setState({lang: ""}), 500)
 | |
|             return (<View/>)
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     userDeconnect() {
 | |
|         Alert.alert(
 | |
|             I18n.t('DISCONNEXION'),
 | |
|             I18n.t('DISCONNEXION_TEXT'),
 | |
|             [
 | |
|                 {},
 | |
|                 {text: I18n.t('NO'), onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
 | |
|                 {
 | |
|                     text: I18n.t('YES'), onPress: () => {
 | |
|                         disconnect().then(() => {
 | |
|                             IlinkEmitter.emit("userdisconnect");
 | |
|                             AsyncStorage.removeItem('@config:onesignalIds');
 | |
|                             this.props.navigation.navigate("Auth");
 | |
|                         })
 | |
|                     }
 | |
|                 },
 | |
|             ],
 | |
|             {cancelable: false}
 | |
|         )
 | |
|     }
 | |
| 
 | |
|     watchUser() {
 | |
|         readUser().then((user) => {
 | |
|             if (user !== null && user !== undefined) {
 | |
|                 if (user.id !== this.state.user.id) {
 | |
|                     this.updateUser(user);
 | |
|                 }
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| }
 | |
| 
 | |
| const items = StyleSheet.create({
 | |
|     content: {
 | |
|         width: responsiveWidth(100),
 | |
|         height: 50,
 | |
|         paddingLeft: 20,
 | |
|         flexDirection: 'row',
 | |
|         alignItems: 'center'
 | |
|     },
 | |
|     itemText: {
 | |
|         color: '#000000',
 | |
|         marginLeft: 20,
 | |
|         fontSize: responsiveFontSize(2),
 | |
|     }
 | |
| });
 | |
| const styles = StyleSheet.create({
 | |
|     container: {
 | |
|         flex: 1,
 | |
|         backgroundColor: "white",
 | |
|     },
 | |
|     btnDeconnect: {
 | |
|         borderColor: "transparent",
 | |
|         marginLeft: 20,
 | |
|         marginRight: 20,
 | |
|         backgroundColor: theme.accent
 | |
|     },
 | |
|     btntext: {
 | |
|         color: "white",
 | |
|         fontSize: 17,
 | |
|         fontWeight: "bold"
 | |
|     },
 | |
|     headerTitle: {
 | |
|         fontSize: 14,
 | |
|         marginBottom: 5,
 | |
|         color: "white",
 | |
|         fontWeight: 'bold',
 | |
|     },
 | |
|     headerPhone: {
 | |
|         fontSize: 12,
 | |
|         marginBottom: 20,
 | |
|         color: "white",
 | |
|         justifyContent: 'flex-end'
 | |
| 
 | |
|     },
 | |
|     listMenu: {
 | |
|         paddingTop: 15,
 | |
|     },
 | |
|     headercontent: {
 | |
|         height: responsiveHeight(30),
 | |
|         backgroundColor: primary,
 | |
|         justifyContent: 'flex-end',
 | |
|         alignItems: 'flex-start',
 | |
|         paddingLeft: 20
 | |
| 
 | |
|     },
 | |
|     backgroundd_drawer: {
 | |
|         backgroundColor: '#000',
 | |
|     },
 | |
|     listbackground: {},
 | |
|     actionButtonIcon: {
 | |
|         fontSize: 20,
 | |
|         height: 22,
 | |
|         color: 'white',
 | |
|     },
 | |
|     welcome: {
 | |
|         fontSize: 20,
 | |
|         textAlign: 'center',
 | |
|         margin: 10,
 | |
|     },
 | |
|     instructions: {
 | |
|         textAlign: 'center',
 | |
|         color: '#333333',
 | |
|         marginBottom: 5,
 | |
|     },
 | |
| });
 |