import {Alert, Button, Form, Input, Space} from "antd"; import {t} from "ttag"; import React, {useContext, useEffect, useState} from "react"; import {getUser, login} from "../utils/api"; import {AuthenticatedContext} from "../pages/LoginPage"; import {useNavigate} from "react-router-dom"; type FieldType = { username: string; password: string; } export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) { const [error, setError] = useState() const navigate = useNavigate() const {setIsAuthenticated} = useContext(AuthenticatedContext) useEffect(() => { getUser().then(() => { setIsAuthenticated(true) navigate('/home') }) }, []) const onFinish = (data: FieldType) => { login(data.username, data.password).then(() => { setIsAuthenticated(true) navigate('/home') }).catch((e) => { setIsAuthenticated(false) if (e.response.data.message !== undefined) { setError(e.response.data.message) } else { setError(e.response.data['hydra:description']) } }) } return <> {error && }
label={t`Password`} name="password" rules={[{required: true, message: t`Required`}]} > {ssoLogin && } }