import {Button, Form, Container, Col, Row} from 'react-bootstrap';
import { useState, useEffect, useContext } from 'react';
import {Navigate} from "react-router-dom";
import UserContext from "../UserContext.js";
import Swal from 'sweetalert2';
export default function Login(){
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [isActive, setIsActive] = useState(false);
const { user, setUser} = useContext(UserContext);
useEffect(() =>{
if(email !== '' && password !== ''){
setIsActive(false);
}else{
setIsActive(true);
}
}, [email, password]);
function loginUser(event) {
event.preventDefault();
fetch(`${process.env.REACT_APP_API_BASE_URL}/users/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: email,
password: password
})
})
.then(result => result.json())
.then(data => {
if(data.accessToken){
localStorage.setItem('token', data.accessToken);
retrieveUserDetails(data.accessToken);
Swal.fire({
title: "Login Successful",
icon: "success",
text: "Welcome to Arcade Alley!"
})
setEmail('');
setPassword('');
}else{
Swal.fire({
title: "Login Unsuccessful",
icon: "error",
text: "Please try again!"
})
}
})
setEmail('');
setPassword('');
}
const retrieveUserDetails = (token) => {
fetch(`${process.env.REACT_APP_API_BASE_URL}/users/details`, {
method: "GET",
headers: {
Authorization : `Bearer ${token}`
}
})
.then(result => result.json())
.then(data => {
setUser({
id: data._id,
isAdmin: data.isAdmin,
token: localStorage.token
})
})
}
return(
(user.id !== null)
?
:
(user.isAdmin !== null)
?
:
LOGIN
Email address:
{
setEmail(event.target.value);
}}
/>
Password:
{
setPassword(event.target.value);
}}
/>
)
}