import { useState } from 'react' import { api, message, storeTokens } from '@/api/client' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { ArrowUpRight, LoaderCircle, ShieldCheck } from 'lucide-react' export default function LoginPage({ onSigned }) { const [username, setUsername] = useState('') const [password, setPassword] = useState('') const [loading, setLoading] = useState(false) const [error, setError] = useState('') const submit = async event => { event.preventDefault() setLoading(true) setError('') let signedIn = false try { const tokens = (await api.post('/auth/login/', { username, password })).data storeTokens(tokens) signedIn = true const user = (await api.get('/auth/me/')).data onSigned(user) } catch (exception) { // Never forget a successful login because loading /auth/me/ failed. // Failed credentials never created a session, so only show the error. setError(signedIn ? 'Connexion enregistrée, mais le chargement du compte a échoué. Actualise la page pour réessayer.' : exception.response?.status === 401 ? 'Identifiants incorrects.' : message(exception)) } finally { setLoading(false) } } return (
Logo de GooDrive
GoodDrive
Votre espace privé

Votre espace.
Vos fichiers.
Pour vous.

Un espace pour ceux qui en ont besoin. Des dossiers privés, à partager en confiance avec les personnes invitées.

Hébergé sur votre infrastructure

Logo de GooDrive GoodDrive

Bon retour 👋

Connectez-vous à votre espace de stockage.

{error &&

{error}

}
) }