import { Button, Group, Loader, LoadingOverlay, Notification, Space, TextInput, Title } from '@mantine/core'; import { useForm } from '@mantine/hooks'; import React, { useEffect, useState } from 'react'; import { ImCross } from 'react-icons/im'; import { Navigate, Outlet, Route, Routes } from 'react-router-dom'; import MainLayout from './components/MainLayout'; import { PasswordSend, ServerStatusResponse, update_freq } from './js/models'; import { getstatus, login, setpassword } from './js/utils'; import HomePage from './pages/HomePage'; import ServiceDetails from './pages/ServiceDetails'; function App() { const [loading, setLoading] = useState(true); const [systemStatus, setSystemStatus] = useState({status:"", loggined:false}) const [reqError, setReqError] = useState() const [error, setError] = useState() const [loadinBtn, setLoadingBtn] = useState(false); const getStatus = () =>{ getstatus().then( res =>{ setSystemStatus(res) setReqError(undefined) setLoading(false) }).catch(err=>{ setReqError(err.toString()) setLoading(false) setTimeout(getStatus, update_freq) }) } useEffect(getStatus,[]) const form = useForm({ initialValues: { password:"", }, validationRules:{ password: (value) => value !== "" } }) if (loading){ return }else if (reqError){ return
Errore nel caricamento del firewall! 🔥 Errore nella comunicazione con il backend Errore: {reqError}
}else if (systemStatus.status === "init"){ const submitRequest = async (values:PasswordSend) => { setLoadingBtn(true) await setpassword(values).then(res => { if(!res){ setSystemStatus({loggined:true, status:"run"}) }else{ setError(res) } }).catch( err => setError(err.toString())) setLoadingBtn(false) } return
Setup: Choose the password for access to the firewall 🔒
{error?<> } color="red" onClose={()=>{setError(null)}}> Error: {error} :null}
}else if (systemStatus.status === "run" && !systemStatus.loggined){ const submitRequest = async (values:PasswordSend) => { setLoadingBtn(true) await login(values).then(res => { if(!res){ setSystemStatus({...systemStatus, loggined:true}) }else{ setError(res) } }).catch( err => setError(err.toString())) setLoadingBtn(false) } return
Welcome to Firegex 🔥 Before you use the firewall, insert the password 🔒
{error?<> } color="red" onClose={()=>{setError(null)}}> Error: {error} :null}
}else if (systemStatus.status === "run" && systemStatus.loggined){ return }> } /> } /> } /> }else{ return
Errore nel caricamento del firewall! 🔥 Errore nella comunicazione con il backend
} } export default App;