import { useEffect, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { toast } from 'react-toastify'; import BackendError from '../components/BackendError'; import Button from '../components/Common/Button'; import Form from '../components/Common/Form'; import SubmitButton from '../components/Common/SubmitButton'; import TextInput from '../components/Common/TextInput'; import { useAuth } from '../context/AuthContext'; import { type IUserSignupData } from '../utils/models'; function RegisterPage() { const location = useLocation(); const navigate = useNavigate(); const { user, signup, loading, error, setError } = useAuth(); const [username, setUsername] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [password2, setPassword2] = useState(''); const [firstName, setFirstName] = useState(''); const [lastName, setLastName] = useState(''); useEffect(() => { setError(undefined); }, [username, email, password, password2, setError]); function handleCancel() { if (location.key !== 'default') { navigate(-1); } else { navigate('/library'); } } function handleSubmit(event: React.FormEvent) { event.preventDefault(); if (!loading) { const data: IUserSignupData = { username, email, password, password2, first_name: firstName, last_name: lastName }; signup(data, createdUser => { navigate(`/login?username=${createdUser.username}`); toast.success(`Пользователь успешно создан: ${createdUser.username}`); }); } } return (
{ user && {`Вы вошли в систему как ${user.username}. Если хотите зарегистрировать нового пользователя, выйдите из системы (меню в правом верхнем углу экрана)`}} { !user &&
setUsername(event.target.value)} /> setPassword(event.target.value)} /> setPassword2(event.target.value)} />

- используйте уникальный пароль

- портал функционирует в тестовом режиме

- безопасность информации не гарантируется

{/*

- минимум 8 символов

- большие, маленькие буквы, цифры

- минимум 1 спец. символ

*/}
setEmail(event.target.value)} /> setFirstName(event.target.value)} /> setLastName(event.target.value)} />
{ error && } }
); } export default RegisterPage;