Advertisement
Guest User

signing

a guest
Oct 22nd, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from "react";
  2. import {
  3.   Container,
  4.   Card,
  5.   CardItem,
  6.   Form,
  7.   Item,
  8.   Label,
  9.   Input,
  10.   Header,
  11.   Title,
  12.   Content,
  13.   Footer,
  14.   FooterTab,
  15.   Button,
  16.   Left,
  17.   Right,
  18.   Body,
  19.   Text,
  20.   Spinner
  21. } from "native-base";
  22. import Icon from "react-native-vector-icons/FontAwesome";
  23. import { AlertIOS, Alert, AsyncStorage, Modal, ToastAndroid,DatePickerAndroid} from "react-native";
  24. import axios from "axios";
  25.  
  26. export default class SignInScreen extends Component {
  27.   constructor(props) {
  28.     super(props);
  29.     this.state = {
  30.       username: "",
  31.       password: "",
  32.       loginClicked: false,
  33.       payload: {}
  34.     };
  35.   }
  36.  
  37.   static navigationOptions = {
  38.     title: "Sign In",
  39.     header: null
  40.   };
  41.  
  42.   async _onChangeToken(token) {
  43.     try {
  44.       await AsyncStorage.setItem("token", token);
  45.     } catch (err) {
  46.       console.log(err);
  47.     }
  48.   }
  49.  
  50.   handleSubmit(navigate) {
  51.     if (this.state.username != '' & this.state.password != '') {
  52.       this.setState({ loginClicked: !this.state.loginClicked });
  53.       axios.post("url", this.state)
  54.         .then((response) => {
  55.           if (response.data.status) {
  56.             this.setState({ payload: response.data.payload })
  57.             this._onChangeToken(response.data.token, navigate);
  58.             navigate("Dashboard", { payload: this.state.payload });
  59.           }
  60.           this.setState({ loginClicked: !this.state.loginClicked });
  61.           let message = response.data.message
  62.             ? response.data.message
  63.             : "Error occurred while trying to connect to server.";
  64.           ToastAndroid.show(message, ToastAndroid.SHORT);
  65.         })
  66.         .catch(err => {
  67.           Alert.alert("Network Error, Kindly Connect to internet");
  68.           this.setState({ loginClicked: !this.state.loginClicked });
  69.         });
  70.     } else {
  71.       ToastAndroid.show('Kindly fill all fields to proceed', ToastAndroid.SHORT);
  72.     }
  73.   }
  74.  
  75. render() {
  76.     const { navigate } = this.props.navigation;
  77.  
  78.     return (
  79.       <Container>
  80.         <Header />
  81.         <Content padder>
  82.           <Card style={{ marginTop: 150 }}>
  83.             <Form>
  84.               <Item floatingLabel>
  85.                 <Label>Username</Label>
  86.                 <Input ref="username" onChangeText={username => { this.setState({ username }); }} value={this.state.username} />
  87.               </Item>
  88.               <Item floatingLabel style={{ marginTop: 50 }}>
  89.                 <Label>Password</Label>
  90.                 <Input secureTextEntry={true} returnKeyType="send" onChangeText={password => { this.setState({ password });
  91.                   }} value={this.state.password} />
  92.               </Item>
  93.             </Form>
  94.           </Card>
  95.         </Content>
  96.         <Footer>
  97.           <FooterTab style={{ justifyContent: "center" }}>
  98.             {this.state.loginClicked
  99.               ? <Spinner color="white" style={{ marginBottom: 10 }} />
  100.               : <Button
  101.                 full
  102.                 large
  103.                 success
  104.                 onPress={this.handleSubmit.bind(this, navigate)}
  105.               >
  106.                 <Text style={{ fontSize: 25, color: "white" }}>Log In</Text>
  107.               </Button>}
  108.           </FooterTab>
  109.         </Footer>
  110.       </Container>
  111.     );
  112.   }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement