import { useEffect, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import BackendError from '../components/BackendError'; import Form from '../components/Common/Form'; import SubmitButton from '../components/Common/SubmitButton'; import TextInput from '../components/Common/TextInput'; import TextURL from '../components/Common/TextURL'; import { useAuth } from '../context/AuthContext'; import { IUserLoginData } from '../utils/models'; function LoginPage() { const navigate = useNavigate(); const search = useLocation().search; const { user, login, loading, error, setError } = useAuth(); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); useEffect(() => { const name = new URLSearchParams(search).get('username'); setUsername(name ?? ''); setPassword(''); }, [search]); useEffect(() => { setError(undefined); }, [username, password, setError]); function handleSubmit(event: React.FormEvent) { event.preventDefault(); if (!loading) { const data: IUserLoginData = { username: username, password: password }; login(data, () => { navigate('/library?filter=personal'); }); } } return (
{ user ? {`Вы вошли в систему как ${user.username}`} :
{ setUsername(event.target.value); }} /> { setPassword(event.target.value); }} />
{ error && } }
); } export default LoginPage;