fga-eps-mds/2019.2-Vsign

View on GitHub
frontend/src/components/LoginTokenPage/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { setUserNameAction } from '../../actions/user';
import { createSessionAction } from "../../actions/session";
import { loginAction } from '../../actions/login';
import { loginByTokenMutation } from '../../graphql/mutations';


class LoginTokenPage extends Component {

    componentDidMount() {
        const { token } = this.props.match.params;
        const { loginAction, createSessionAction,  setUserNameAction } = this.props;
        loginByTokenMutation({ token })
            .then(({ data }) => {
                const { loginByToken } = data;
                if (loginByToken) {
                    const { token, name } = loginByToken;
                    sessionStorage.setItem("userToken", token);
                    createSessionAction();
                    setUserNameAction(name);
                    loginAction();
                } else {
                    // Apresentar mensagem de erro
                    alert('erro');
                }
            }).catch(error => {
                // Apresentar mensagem de erro.
            });
    }

    render() {
        return (
            <div className="container d-flex" style={{ height: '100vh' }}>
                <div className="row align-self-center" style={{ width: '100vh' }}>
                    <div className="col-12 col-md-4 mx-auto">
                        <div className="jumbotron text-center">
                            <h3>Validando Acesso</h3>
                            <p className="lead">Por favor aguarde...</p>
                        </div>
                    </div>
                </div>
            </div>
        );
    }
}

const mapDispatchToProps = {
    loginAction,
    createSessionAction,
    setUserNameAction
};

export default connect(null, mapDispatchToProps)(LoginTokenPage);