Untitled
unknown
plain_text
2 years ago
2.9 kB
3
Indexable
import React, { useState } from 'react' import ReactDOM from 'react-dom/client' import {BrowserRouter,Routes, Route,Navigate} from "react-router-dom" import 'bootstrap/dist/css/bootstrap.min.css' import "bootstrap/dist/js/bootstrap.js" import Home from './component/Home/home' import Signin from './component/Signin/signin' import Signup from './component/Signup/signup' import CowManagement from './component/CowManagement/cowmanagement' import Milk from './component/Milk/milk' import Feed from './component/Feed/feed' import Offspring from './component/Offspring/offspring' export default function App (){ const[cows,setCows]=useState([]) const [ref,setRef]=useState(null) const logout=()=>{ fetch(process.env.REACT_APP_BACKEND_URL+"/signout",{credentials:"include",headers:{'Content-Type':'application/json'}}).then((response)=>{ if(!response.ok){ throw new Error(response.statusText) }; return response.json() }).then( (data)=>{ localStorage.removeItem('user') clearInterval(ref) setRef(null) window.location.replace("/signin") } ).catch().finally() } function refresh(){ fetch(process.env.REACT_APP_BACKEND_URL+"/refresh",{credentials:"include",headers:{'Content-Type':'application/json'}}).then((response)=>{ if(!response.ok){ throw new Error(response.statusText) }; return response.json() }).then().catch().finally() } const setInt=()=>{ if(!ref){ setRef(setInterval(refresh,1000)) } } function authenticated(){ let x=localStorage.getItem('user') if( x==null){ return false } return Object.keys(x).length!==0?true:false } return( <BrowserRouter> <Routes> <Route path="/"element={authenticated()?<Home logout={logout} />:<Navigate to="/signin"/>}></Route> <Route path="/signin" element={<Signin logout={logout}setInt={setInt}/>}></Route> <Route path="/signup" element={<Signup logout={logout}/>}></Route> <Route path="/cow"element={authenticated()?<CowManagement logout={logout} setCows={setCows} />:<Navigate to="/signin"/>}></Route> <Route path="/milk"element={authenticated()?<Milk cows={cows} logout={logout}/>:<Navigate to="/signin"/>}></Route> <Route path="/feed"element={authenticated()?<Feed logout={logout}/>:<Navigate to="/signin"/>}></Route> <Route path="/offspring"element={authenticated()?<Offspring logout={logout}/>:<Navigate to="/signin"/>}></Route> </Routes> </BrowserRouter> ) } const root=ReactDOM.createRoot(document.getElementById('root')) root.render(<App/>)
Editor is loading...