import React, { useEffect, useState } from "react"; import { Routes, Route, } from "react-router-dom"; import Container from '@mui/material/Container'; import Paper from '@mui/material/Paper'; import './App.css'; import './fonts/index.css'; import { GoodTimesBar } from "./GoodTimesBar.js"; import { GlobalContext } from "./GlobalContext.js"; import SignIn from "./SignIn.js"; import SignUp from "./SignUp.js"; import Group from "./Group.js"; import VerifyEmail from "./VerifyEmail.js"; import Dashboard from "./Dashboard.js"; import { base } from "./Common.js"; const App = () => { const [ user, setUser ] = useState(null); const [ csrfToken, setCsrfToken ] = useState(undefined); useEffect(() => { const effect = async () => { const res = await window.fetch(`${base}/api/v1/users/csrf`, { method: 'GET', cache: 'no-cache', credentials: 'same-origin', headers: { 'Content-Type': 'application/json' }, }); const data = await res.json(); setCsrfToken(data.csrfToken); } effect(); }, []); useEffect(() => { if (csrfToken) { return; } const effect = async () => { const res = await window.fetch(`${base}/api/v1/users`, { method: 'GET', cache: 'no-cache', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', 'CSRF-Token': csrfToken }, }); const data = await res.json(); setUser(data); }; effect(); }, [csrfToken, setUser]); return (