Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { Component } from "react";
- import {
- Container,
- Card,
- CardItem,
- Form,
- Item,
- Label,
- Input,
- Header,
- Title,
- Content,
- Footer,
- FooterTab,
- Button,
- Left,
- Right,
- Body,
- Text,
- Spinner
- } from "native-base";
- import Icon from "react-native-vector-icons/FontAwesome";
- import { AlertIOS, Alert, AsyncStorage, Modal, ToastAndroid,DatePickerAndroid} from "react-native";
- import axios from "axios";
- export default class SignInScreen extends Component {
- constructor(props) {
- super(props);
- this.state = {
- username: "",
- password: "",
- loginClicked: false,
- payload: {}
- };
- }
- static navigationOptions = {
- title: "Sign In",
- header: null
- };
- async _onChangeToken(token) {
- try {
- await AsyncStorage.setItem("token", token);
- } catch (err) {
- console.log(err);
- }
- }
- handleSubmit(navigate) {
- if (this.state.username != '' & this.state.password != '') {
- this.setState({ loginClicked: !this.state.loginClicked });
- axios.post("url", this.state)
- .then((response) => {
- if (response.data.status) {
- this.setState({ payload: response.data.payload })
- this._onChangeToken(response.data.token, navigate);
- navigate("Dashboard", { payload: this.state.payload });
- }
- this.setState({ loginClicked: !this.state.loginClicked });
- let message = response.data.message
- ? response.data.message
- : "Error occurred while trying to connect to server.";
- ToastAndroid.show(message, ToastAndroid.SHORT);
- })
- .catch(err => {
- Alert.alert("Network Error, Kindly Connect to internet");
- this.setState({ loginClicked: !this.state.loginClicked });
- });
- } else {
- ToastAndroid.show('Kindly fill all fields to proceed', ToastAndroid.SHORT);
- }
- }
- render() {
- const { navigate } = this.props.navigation;
- return (
- <Container>
- <Header />
- <Content padder>
- <Card style={{ marginTop: 150 }}>
- <Form>
- <Item floatingLabel>
- <Label>Username</Label>
- <Input ref="username" onChangeText={username => { this.setState({ username }); }} value={this.state.username} />
- </Item>
- <Item floatingLabel style={{ marginTop: 50 }}>
- <Label>Password</Label>
- <Input secureTextEntry={true} returnKeyType="send" onChangeText={password => { this.setState({ password });
- }} value={this.state.password} />
- </Item>
- </Form>
- </Card>
- </Content>
- <Footer>
- <FooterTab style={{ justifyContent: "center" }}>
- {this.state.loginClicked
- ? <Spinner color="white" style={{ marginBottom: 10 }} />
- : <Button
- full
- large
- success
- onPress={this.handleSubmit.bind(this, navigate)}
- >
- <Text style={{ fontSize: 25, color: "white" }}>Log In</Text>
- </Button>}
- </FooterTab>
- </Footer>
- </Container>
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement