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

loginUser(event)} className = "p-2"> Email address: { setEmail(event.target.value); }} /> Password: { setPassword(event.target.value); }} />
) }