import React, {useEffect, useState} from 'react'; import { Router, Switch, Route, Redirect } from 'react-router-dom'; import * as BS from 'react-bootstrap' import { useForm } from "react-hook-form"; import * as fetch from 'node-fetch'; import './App.scss'; import 'bootstrap/dist/css/bootstrap.min.css'; import { FaLock } from "react-icons/fa"; import Dash from './Components/Dash.js' import history from "./History.js"; import Loading from "./Components/Loading.js"; import Navigation from "./Components/Navigation.js"; import API_URL from "./Constants/constants.js"; export default function App() { const [isLoading, setIsLoading ] = useState(false); const [isSubmit, setIsSubmit ] = useState(false); const [isInvalid, setIsInvalid] = useState(false); const { register, handleSubmit } = useForm(); useEffect(() => { if (localStorage.getItem('token')) { logIn(); } }, []) const onSubmit = data => { localStorage.setItem('token', data.pkToken); logIn(); }; function logIn() { setIsInvalid(false); setIsLoading(true); fetch(`${API_URL}s/`,{ method: 'GET', headers: { 'Authorization': JSON.stringify(localStorage.getItem("token")).slice(1, -1) }}).then ( res => res.json() ).then (data => { localStorage.setItem('user', JSON.stringify(data)); setIsSubmit(true); setIsLoading(false); history.push("/pk-webs/dash"); }) .catch (error => { console.log(error); setIsInvalid(true); localStorage.removeItem('token'); localStorage.removeItem('user'); setIsLoading(false); }) }; return ( { !localStorage.getItem('token') || isInvalid ? : } { isLoading ? : Login { isSubmit && !localStorage.getItem('user') ? Something went wrong, please try again. : ""} { isInvalid ? Invalid token. : "" } Enter your token here. You can get your token by using "pk;token". Submit } ); }