Advertisement
AlusorStroke

Register screen

May 14th, 2017
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { View, ScrollView, Alert, KeyboardAvoidingView } from 'react-native';
  3. import Styles from '../Styles';
  4. import { Header, Button, Input, Logo } from '../Components/';
  5. import { AppServices } from '../Services/';
  6.  
  7. class RegisterForm extends Component {
  8.   constructor(props) {
  9.     super(props);
  10.     this.state = {
  11.       username: '',
  12.       password: '',
  13.       passwordConfirm: '',
  14.       email: '',
  15.       type: 0,
  16.       name: '',
  17.       addres: '',
  18.       phoneNumber: ''
  19.     };
  20.   }
  21.  
  22.   selectTypeOfUser() {
  23.       Alert.alert('¿Comó vas a usar la app?', 'Cliente si quieres buscar algo.\nNegocio si quieres darte a conocer.',[
  24.         {
  25.           text: 'Cliente',
  26.           onPress: () => this.setState({ type: 1})
  27.         },
  28.         {
  29.           text: 'Negocio',
  30.           onPress: () => this.setState({ type: 2})
  31.         }
  32.       ]);
  33.   }
  34.   makeRegister() {
  35.  
  36.     const service =new AppServices();
  37.     service.registerUser(this.state.username,
  38.       this.state.password,
  39.       this.state.email,
  40.       this.state.name,
  41.       this.state.addres,
  42.       this.state.phoneNumber,
  43.       this.state.type).then((response) => {
  44.         console.log(response);
  45.         switch (response) {
  46.           case 'success':
  47.             Alert.alert('Éxito','Cuenta creada correctamente.');
  48.             this.props.navigator.pop();
  49.             break;
  50.           case 'InvalidMail':
  51.             Alert.alert('Error', 'Correo Invalido');
  52.             break;
  53.           case 'AlreadyExist':
  54.             Alert.alert('Error', 'Usuario o Correo existente');
  55.             break;
  56.           default:
  57.             Alert.alert('Error', 'Vuelve a intentarlo por favor.');
  58.  
  59.         }
  60.         this.setState({
  61.           username: '',
  62.           password: '',
  63.           passwordConfirm: '',
  64.           email: '',
  65.           type: 0,
  66.           name: '',
  67.           addres: '',
  68.           phoneNumber: ''
  69.         });
  70.       });
  71.   }
  72.   formType() {
  73.     switch (this.state.type) {
  74.       case 0:
  75.         return (
  76.           <KeyboardAvoidingView behavior='padding' style={Styles.PageCenterContainer}>
  77.             <Input value={this.state.username} placeholder="Usuario" onChangeText={username => this.setState({ username })} />
  78.             <Input isPassword placeholder="Contraseña" onChangeText={password => this.setState({ password })} />
  79.             <Input isPassword placeholder="Confirmar contraseña" onChangeText={passwordConfirm => this.setState({ passwordConfirm })} />
  80.             <Input value={this.state.email} placeholder="E-mail" onChangeText={email => this.setState({ email })} />
  81.             <Button text='SIGUIENTE' color='#ef5350' onPress={this.selectTypeOfUser.bind(this)} />
  82.           </KeyboardAvoidingView>
  83.         );
  84.       break;
  85.       case 1:
  86.         return (
  87.           <ScrollView style={Styles.PageCenterContainer}>
  88.             <ScrollView>
  89.               <Input placeholder="Nombre" onChangeText={name => this.setState({ name })} />
  90.               <Button text='FINALIZAR' color='#EE2C2A' onPress={this.makeRegister.bind(this)} />
  91.             </ScrollView>
  92.           </ScrollView>
  93.         );
  94.       break;
  95.       case 2:
  96.         return (
  97.           <ScrollView style={Styles.PageCenterContainer}>
  98.             <ScrollView>
  99.               <Input placeholder="Nombre" onChangeText={name => this.setState({ name })} />
  100.               <Input placeholder="Dirección" onChangeText={addres => this.setState({ addres })} />
  101.               <Input placeholder="Telefono" onChangeText={phoneNumber => this.setState({ phoneNumber })} />
  102.               <Button text='FINALIZAR' color='#EE2C2A' onPress={this.makeRegister.bind(this)} />
  103.             </ScrollView>
  104.           </ScrollView>
  105.         );
  106.       break;
  107.     }
  108.  
  109.  
  110.   }
  111.  
  112.   render() {
  113.     return (
  114.       <View style={Styles.ScreenContainer}>
  115.         <Header title="Registro" leftButton='back' nav={this.props.navigator}/>
  116.           <Logo />
  117.           {this.formType()}
  118.       </View>
  119.     );
  120.   }
  121. }
  122.  
  123. export { RegisterForm };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement