import React, { useEffect, useState } from 'react'; import './App.css'; import { Navbar, Dropdown, Icon } from 'react-materialize'; import MakeMoneyMove from './cash/MakeMoneyMove'; import Flow from "./homies/Flow"; import Cash from './cash/Cash'; import Homies from './homies/Homies'; import { BrowserRouter as Router, Route } from "react-router-dom"; import RoutableNavItem from './common/RoutableNavItem'; import axios from 'axios'; import { CRIB, GANGS, MAKE_MONEY_MOVE, HOMIE_FLOW, HOMIES, PUT_IN_WORK } from './RouteNames'; import PutInWork from "./cash/PutInWork"; import GangOnboarding from "./gangOnboarding/GangOnboarding"; import Gangs from './gangs/Gangs'; import {errorToast} from "./common/errorHelpers"; const App = (props) => { const [loading, setLoading] = useState(true); const [gangs, setGangs] = useState([]); const [selectedGang, setSelectedGang] = useState({}); useEffect(() => { (async() => { try { setLoading(true); const response = await axios.get(`/api/gangs`); if (response.status === 200 && response.data){ setGangs(response.data); setSelectedGang(response.data[0]); }else{ errorToast(); } } catch (e) { errorToast(); } setLoading(false); })(); }, []); const routes = ([ } />, } />, } />, } />, } />, } /> ] ); const onboarded = () => selectedGang.chip_name && selectedGang.chip_name.length > 0; const preloaderCircle = (
); const navbarLogoWithGang = (
GKS {selectedGang && selectedGang.name && selectedGang.name.length > 0 ? `${selectedGang.name} gang` : '[No name gang]'}arrow_drop_down} > {gangs.map(gang => setSelectedGang(gang)}>{gang.name})}
); return (
Crib Gangs Homies Make Money Move Put in Work
{ loading && preloaderCircle } { !loading && !onboarded() && } { !loading && onboarded() && routes }
); } export default App;