import { useState } from 'react' import { useNavigate } from 'react-router-dom' import { useAuthStore } from '@/stores/state' import { loginToServer } from '@/api/lightrag' import { toast } from 'sonner' import { useTranslation } from 'react-i18next' import { Card, CardContent, CardHeader } from '@/components/ui/Card' import Input from '@/components/ui/Input' import Button from '@/components/ui/Button' import { ZapIcon } from 'lucide-react' import ThemeToggle from '@/components/ThemeToggle' import LanguageToggle from '@/components/LanguageToggle' const LoginPage = () => { const navigate = useNavigate() const { login } = useAuthStore() const { t } = useTranslation() const [loading, setLoading] = useState(false) const [username, setUsername] = useState('') const [password, setPassword] = useState('') const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!username || !password) { toast.error(t('login.errorEmptyFields')) return } try { setLoading(true) const response = await loginToServer(username, password) login(response.access_token) navigate('/') toast.success(t('login.successMessage')) } catch (error) { console.error('Login failed...', error) toast.error(t('login.errorInvalidCredentials')) } finally { setLoading(false) } } return (
LightRAG Logo

LightRAG

{t('login.description')}

setUsername(e.target.value)} required className="h-11 flex-1" />
setPassword(e.target.value)} required className="h-11 flex-1" />
) } export default LoginPage