/*Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana

This file is part of Plataforma Integrada MEC.

Plataforma Integrada MEC is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Plataforma Integrada MEC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
import React, {useContext} from 'react';
import { makeStyles } from '@material-ui/styles';
import { Button } from '@material-ui/core';
import Modal from '@material-ui/core/Modal';
import Backdrop from '@material-ui/core/Backdrop';
import Fade from '@material-ui/core/Fade';
import styled from 'styled-components'
import SignUpContainer from './SignUpContainerFunction.js'
import {Store} from '../Store.js'
import axios from 'axios'
import {apiUrl} from '../env';

const StyledModalSignUp = styled(Modal)`
    .djXaxP{
        margin : 0 !important;
    }

    display : flex;
    align-items: center;
    justify-content : center;
    text-align : center;
    padding : 10px !important;
    border-radius : 4px;

`



export default function SignUpModal (props) {
    const { state, dispatch } = useContext(Store)

    const handleLoginInfo = (newLogin) => {
        {/*console.log(state.currentUser)*/}
        axios.post(`${apiUrl}/auth`,
            {
            name : newLogin.name,
            email: newLogin.email,
            password : newLogin.password,
            password_confirmation : newLogin.senha,
            terms_of_service:true,
            avatar: ""
        }
        ).then( (response) => {
            dispatch ( {
                type: 'USER_SIGNED_UP',
                userLoggedIn: !state.userIsLoggedIn,
                user: response.data.data
                }
            )
            localStorage.setItem('@portalmec/accessToken', response.headers['access-token'])
            localStorage.setItem('@portalmec/clientToken', response.headers.client,)
            localStorage.setItem('@portalmec/id', response.data.data.id)
            localStorage.setItem('@portalmec/username', response.data.data.name)
            localStorage.setItem('@portalmec/uid', response.data.data.uid)

            let headers = {
                client:response.headers.client,
                "access-token":response.headers['access-token'],
                "token-type": "Bearer",
                expiry:response.headers.expiry,
                uid:response.data.data.uid
            }
            sessionStorage.setItem('@portalmec/auth_headers', JSON.stringify(headers))

            props.handleClose()
            }, (error) => {
                console.log(':(')
            }
        )
    }

    //useEffect(()=>{console.log(state.currentUser)},[state.currentUser])

    return (
        <StyledModalSignUp
            aria-labelledby="transition-modal-title"
            aria-describedby="transition-modal-description"
            open={props.open}

            centered="true"
            onClose={props.handleClose}
            closeAfterTransition
            BackdropComponent={Backdrop}
            BackdropProps={{
                timeout: 500,
            }}
        >
            <Fade in={props.open}>
                <SignUpContainer
                 handleClose={props.handleClose}
                 openLogin={props.openLogin}
                 handleLoginInfo = {handleLoginInfo}
                />
            </Fade>
        </StyledModalSignUp>
    )
}