import React,{Component} from 'react' import {View,StyleSheet,Text,Image,Alert} from 'react-native' import Button from 'apsl-react-native-button' import {Fumi} from 'react-native-textinput-effects'; let theme=require('./../../utils/theme.json'); let route=require('./../../route.json'); import I18n from 'react-native-i18n' import * as Animatable from 'react-native-animatable'; import {validateUser, valifateAgent, saveNewuser, readUser} from "./../../webservice/AuthApi" import Icon from 'react-native-vector-icons/MaterialIcons' import {responsiveWidth,responsiveHeight} from 'react-native-responsive-dimensions' import {IlinkEmitter} from "./../../utils/events" export default class ActivateAccount extends Component{ static navigatorStyle = { drawUnderNavBar: true, navBarHidden:true, statusBarTextColorScheme: 'light', }; static options(passProps){ return { topBar:{ visible:false, drawBehind:true }, statusBar:{ drawBehind:true } } } constructor(props){ super(props) const {navigation}=this.props this.type=navigation.getParam('type',0) this.user=navigation.getParam('user',null) this.state=this.initState() } initState(){ return { user:this.user, userSimpleLoading:false } } render(){ return this.type===0? this.renderUserSimpleActivation() :this.renderAgentActivation(); } async gotoHome(){ let readU=await readUser() let road=""; if(!readU.category) road="App" else { switch (readU.category) { case 'geolocated': road="AgentApp" break; case 'super': road="adminApp" break default: road="supAdminApp" } } this.props.navigation.navigate(road) } tryToActive() { let {activateSimple,user}=this.state; const validation_code=user.validation_code this.setState({userSimpleLoading:true}); const isSame=validation_code===activateSimple if(isSame){ validateUser(user).then(async (result)=>{ console.log(result); if(result.success!==undefined){ Alert.alert("",I18n.t('ACCOUNT_ACTIVATE_TEXT'),[{text:"Ok",onPress:()=>{ var us=result.user saveNewuser(us) this.gotoHome() }}]) }else{ Alert.alert("",result.message,[{text:"Ok",onPress:()=>{}}]) } this.setState({userSimpleLoading:false}); }).catch((e)=>{ console.warn(e) this.setState({userSimpleLoading:false}); this.userValidate.shake(800) }) }else{ setTimeout(()=>{ this.setState({userSimpleLoading:false}); this.userValidate.shake(800) },2000) } } renderUserSimpleActivation() { const text=I18n.t('ACTIVATE_ACCOUNT') return ( {I18n.t('LAST_STEP')} {I18n.t('LAST_STEP_TEXT')} {this.userValidate=comp}}> { console.warn(text) this.setState({activateSimple:text}) }} /> ) } renderAgentActivation() { console.warn(this.state.user) switch(this.state.user.category){ default: return this.renderGeoLocatedActivation(); break; case "hyper": return this.renderHypervisorActivation(); break } } renderGeoLocatedActivation() { const text=I18n.t('ACTIVATE_ACCOUNT') return ( {I18n.t('LAST_STEP')} {I18n.t('LAST_STEP_TEXT')} {this.userValidate=comp}}> this.setState({activateSimple:text})} /> ) } tryToActiveGeolocated() { const {activateSimple,user}=this.state; this.setState({userSimpleLoading:true}); if(user.validation_code===String(activateSimple)){ valifateAgent(user,null).then((result)=>{ console.log(result) if(result.success===1){ let us={} for(let key in user){ const val=user[key]; if(key!=='active')us['active']='oui'; us[key]=val; } saveNewuser(us); setTimeout(() => { this.gotoHome() }, 1000) }else{ console.log(result.message) this.userValidate.shake(800) } this.setState({userSimpleLoading:false}); }).catch((e)=>{ console.log(e) this.setState({userSimpleLoading:false}); this.userValidate.shake(800) }) }else{ setTimeout(()=>{ this.setState({userSimpleLoading:false}); this.userValidate.shake(800) },2000) } } tryToActivateHypervisor() { const {activateSimple,user,nbre_code,nbre_code_superviseur}=this.state; this.setState({userSimpleLoading:true}); if(user.validation_code===activateSimple){ valifateAgent(user,{nbre_code:nbre_code,nbre_code_superviseur:nbre_code_superviseur}) .then((result)=>{ if(result.success===1){ let usr={} usr['etat']=1 for(key in user){ console.log(usr) if(key!=='etat')usr[key]=user[key] } saveNewuser(usr); setTimeout(() => { this.gotoHome() }, 1000) }else{ console.log(result.message) this.userValidate.shake(800) } this.setState({userSimpleLoading:false}); }).catch((e)=>{ this.setState({userSimpleLoading:false}); this.userValidate.shake(800) }) }else{ setTimeout(()=>{ this.setState({userSimpleLoading:false}); this.userValidate.shake(800) },2000) } } renderHypervisorActivation() { const text=I18n.t('ACTIVATE_ACCOUNT') return ( Derniere étape {I18n.t('SUBTITLE_ACTIVE_ACCOUNT')} {this.userValidate=comp}}> this.setState({activateSimple:text})} iconSize={24} style={styles.inputkey}/> {I18n.t('SUPERVISOR_NUMBER')} {this.setState({nbre_code_superviseur:text})}} /> {I18n.t('GEOLOCATED_NUMBER')} this.setState({nbre_code:text})} /> ) } } const styles=StyleSheet.create({ container:{ }, titleText:{ color:'white', fontSize:20, fontWeight:'bold', marginBottom:20 }, titleText2:{ color:'white', fontSize:20, alignSelf:'center', fontWeight:'bold', marginBottom:20 }, descriptionText:{ color:'white', fontSize:16, marginLeft:responsiveWidth(7), marginRight:responsiveWidth(7), textAlign:'center', marginBottom:20 }, btnTextActive:{ fontSize:17, fontWeight:'bold', color:'white' }, inputkey2:{ width:responsiveWidth(40), height:70,alignSelf:'center',borderRadius:6,marginBottom:responsiveHeight(5) }, inputkey:{ height:70,width:responsiveWidth(90),alignSelf:'center',borderRadius:6,marginBottom:responsiveHeight(5)}, btnActive:{ borderColor:'transparent', width:responsiveWidth(90), alignSelf:'center', backgroundColor:theme.accent, } })