'use client'; import axios from 'axios'; import clsx from 'clsx'; import { useEffect, useState } from 'react'; import SubmitButton from '@/components/Common/SubmitButton'; import TextInput from '@/components/Common/TextInput'; import TextURL from '@/components/Common/TextURL'; import ExpectedAnonymous from '@/components/ExpectedAnonymous'; import InfoError, { ErrorData } from '@/components/InfoError'; import { useAuth } from '@/context/AuthContext'; import { useConceptNavigation } from '@/context/NavigationContext'; import useQueryStrings from '@/hooks/useQueryStrings'; import { IUserLoginData } from '@/models/library'; import { classnames, resources } from '@/utils/constants'; function ProcessError({ error }: { error: ErrorData }): React.ReactElement { if (axios.isAxiosError(error) && error.response && error.response.status === 400) { return (
На Портале отсутствует такое сочетание имени пользователя и пароля
); } else { return ; } } function LoginPage() { const router = useConceptNavigation(); const query = useQueryStrings(); const userQuery = query.get('username'); const { user, login, loading, error, setError } = useAuth(); const [username, setUsername] = useState(userQuery || ''); const [password, setPassword] = useState(''); useEffect(() => { setError(undefined); }, [username, password, setError]); function handleSubmit(event: React.FormEvent) { event.preventDefault(); if (!loading) { const data: IUserLoginData = { username: username, password: password }; login(data, () => { if (router.canBack()) { router.back(); } else { router.push('/library'); } }); } } if (user) { return ; } return (
Концепт Портал setUsername(event.target.value)} /> setPassword(event.target.value)} />
{error ? : null} ); } export default LoginPage;