Initial commit: charles.secourit.fr - App de suivi maintenance 360 Partners

This commit is contained in:
2026-08-24 12:12:51 +00:00
commit c7109893b2
21 changed files with 704 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
import { useState } from 'react'
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import Login from './components/Login'
import Layout from './components/Layout'
import Dashboard from './components/Dashboard'
import DomainForm from './components/DomainForm'
function App() {
const [token, setToken] = useState(localStorage.getItem('charles_token'))
const [user, setUser] = useState(() => { try { return JSON.parse(localStorage.getItem('charles_user')) } catch { return null } })
const handleLogin = (t, u) => {
localStorage.setItem('charles_token', t)
localStorage.setItem('charles_user', JSON.stringify(u))
setToken(t)
setUser(u)
}
const handleLogout = () => {
localStorage.removeItem('charles_token')
localStorage.removeItem('charles_user')
setToken(null)
setUser(null)
}
if (!token) return <Login onLogin={handleLogin} />
return (
<BrowserRouter>
<Layout user={user} onLogout={handleLogout}>
<Routes>
<Route path='/' element={<Dashboard token={token} user={user} />} />
<Route path='/domain/:id' element={<DomainForm token={token} user={user} />} />
<Route path='*' element={<Navigate to='/' />} />
</Routes>
</Layout>
</BrowserRouter>
)
}
export default App