Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { Component } from 'react';
- // Components
- import AuthShared from '../auth_shared';
- export default class Login extends Component {
- render() {
- return (
- <AuthShared login={true}/>
- );
- }
- }
- import React, { Component } from 'react';
- // Components
- import AuthShared from '../auth_shared';
- export default class SignUp extends Component {
- render() {
- return (
- <AuthShared login={false}/>
- );
- }
- }
- import React, { Component } from 'react';
- import {
- AlertIOS,
- Dimensions,
- Image,
- ScrollView,
- StyleSheet,
- Text,
- TextInput,
- TouchableOpacity,
- View
- } from 'react-native';
- import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
- import { Actions } from 'react-native-router-flux';
- import firebaseApp from 'TextbookSwap/firebase_setup';
- import styles from 'TextbookSwap/app_styles';
- // Components
- import HeaderImage from './header_image';
- // For Firebase Auth
- const auth = firebaseApp.auth();
- export default class Login extends Component {
- constructor(props) {
- super(props);
- this.state = {
- firstName: '',
- lastName: '',
- email: '',
- password: '',
- passwordConfirmation: ''
- }
- }
- componentDidMount() {
- let user = auth.currentUser;
- if (user) {
- console.log(msg)
- Actions.home
- } else {
- return;
- }
- }
- render() {
- return (
- <View style={styles.mainContainer}>
- <KeyboardAwareScrollView
- style={styles.scrollView}
- keyboardShouldPersistTaps={false}
- automaticallyAdjustContentInsets={true}
- alwaysBonceVertical={false}
- >
- <View style={styles.formInputContainer}>
- <HeaderImage />
- {this.props.login ? this.renderLogin() : this.renderSignup()}
- </View>
- {this.props.login ? this.renderFooter() : null}
- </KeyboardAwareScrollView>
- </View>
- );
- }
- renderLogin() {
- return (
- <View>
- {this.renderEmailAndPasswordForms()}
- <View style={styles.authButtonContainer}>
- <TouchableOpacity
- style={styles.authButton}
- onPress={this._logInUser.bind(this)}
- >
- <Text style={styles.actionText}>Log me in!</Text>
- </TouchableOpacity>
- </View>
- </View>
- );
- }
- renderSignup() {
- return (
- <View>
- <View style={[styles.formInputWrapper, styles.formInputInlineWrapper]}>
- <View style={{borderColor: '#50514F', borderLeftWidth: 0, borderRightWidth: 0.5, borderTopWidth: 0, borderBottomWidth: 0}}>
- <TextInput
- style={[styles.formInput, styles.formInputInline]}
- autoFocus={true}
- autoCapitalize="none"
- autoCorrect={false}
- placeholder="First Name"
- onChangeText={(firstName) => this.setState({firstName})}
- />
- </View>
- <TextInput
- style={[styles.formInput, styles.formInputInline]}
- autoFocus={true}
- autoCapitalize="none"
- autoCorrect={false}
- placeholder="Last Name"
- onChangeText={(lastName) => this.setState({lastName})}
- />
- </View>
- {this.renderEmailAndPasswordForms()}
- <View style={styles.formInputWrapper}>
- <TextInput
- style={styles.formInput}
- secureTextEntry={true}
- autoCapitalize="none"
- autoCorrect={false}
- placeholder="Password Confirmation"
- onChangeText={(passwordConfirmation) => this.setState({passwordConfirmation})}
- />
- </View>
- <View style={styles.authButtonContainer}>
- <TouchableOpacity
- style={styles.authButton}
- onPress={this._signUpUser.bind(this)}
- >
- <Text style={styles.actionText}>Sign me up!</Text>
- </TouchableOpacity>
- </View>
- </View>
- );
- }
- renderEmailAndPasswordForms() {
- return (
- <View>
- <View style={styles.formInputWrapper}>
- <TextInput
- style={styles.formInput}
- autoFocus={true}
- autoCapitalize="none"
- autoCorrect={false}
- placeholder="Email"
- onChangeText={(email) => this.setState({email})}
- />
- </View>
- <View style={styles.formInputWrapper}>
- <TextInput
- style={styles.formInput}
- secureTextEntry={true}
- autoCapitalize="none"
- autoCorrect={false}
- placeholder="Password"
- onChangeText={(password) => this.setState({password})}
- />
- </View>
- </View>
- );
- }
- renderFooter() {
- return (
- <View style={styles.footer}>
- <TouchableOpacity
- style={styles.footerButton}
- onPress={Actions.signup}
- >
- <Text style={styles.actionText}>No account? Create one!</Text>
- </TouchableOpacity>
- </View>
- );
- }
- _logInUser() {
- let email = this.state.email;
- let password = this.state.password;
- auth.signInWithEmailAndPassword(email, password)
- .then(Actions.home)
- .catch((error) => {
- switch(error.code) {
- case "auth/wrong-password":
- AlertIOS.alert('Uh oh!', 'Invalid password! Please try again.');
- break;
- case "auth/invalid-email":
- AlertIOS.alert('Uh oh!', 'Invalid email! Please try again.');
- break;
- case "auth/user-not-found":
- AlertIOS.alert('Uh oh!', 'Please check your credentials and try again');
- break;
- }
- });
- }
- _signUpUser() {
- }
- }
- ...
- render() {
- return (
- <MainContainer>
- <Header/>
- {React.Children.only(this.props.children)}
- <Footer/>
- </MainContainer>
- );
- }
- ...
- import React, { Component } from 'react';
- import LoginForm from '../LoginForm.jsx';
- import Page from '../Page.jsx';
- class Login extends Component {
- render() {
- return (
- <Page children={LoginForm}/>
- );
- }
- }
- export default Login;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement