index.js
2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import React, { Component } from 'react'
import {
ScrollView,
View,
Text,
KeyboardAvoidingView,
TextInput,
} from 'react-native'
import { Button } from 'react-native-elements'
import { HeaderBackButton, StackActions } from 'react-navigation'
import { connect } from 'react-redux'
import css from './style'
import { cambiarDatosUsuario } from '../../redux/actions/usuario'
/* eslint-disable max-len */
/* eslint-disable no-useless-escape */
const validateEmail = (email) => {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return re.test(String(email).toLowerCase())
}
/* eslint-enable no-useless-escape */
/* eslint-enable max-len */
const navegarSiguiente = (self, texto) => {
const pushAction = StackActions.push({
routeName: 'DatosUsuario'
})
if (validateEmail(texto)) {
self.props.navigation.dispatch(pushAction)
}
}
class DatosUsuario extends Component {
static navigationOptions = ({ navigation }) => ({
title: 'Datos del Solicitante',
headerStyle: css.headerStyle,
headerTitleStyle: css.headerTitleStyle,
headerLeft: (
<HeaderBackButton
tintColor='#FFFFFF'
onPress={() => navigation.dispatch({ type: 'Navigation/BACK' })}
/>)
});
render() {
const self = this
return (
<View style={[css.pane, css.view]}>
<ScrollView contentContainerStyle={css.contentContainer} >
<KeyboardAvoidingView
keyboardVerticalOffset={-60}
behavior="position" enabled
>
<Text style={[css.label]}> Correo Electronico</Text>
<TextInput
keyboardType='email-address'
style={[css.input, css.oneline]}
underlineColorAndroid="transparent"
autoCapitalize='none'
onChangeText={(mail) => self.props.cambiarDatosUsuario({ mail })}
/>
</KeyboardAvoidingView>
</ScrollView>
<Button
buttonStyle={css.button}
onPress={() => navegarSiguiente(self, self.props.usuario.datos.mail)}
title='SIGUIENTE'
/>
</View>)
}
}
const mapStateToProps = (state) => ({
usuario: state.usuario
})
const mapDispatchToProps = (dispatch) => ({
cambiarDatosUsuario: (datos) => dispatch(cambiarDatosUsuario(datos)),
})
export default connect(mapStateToProps, mapDispatchToProps)(DatosUsuario)