import {Button, Flex, Form, Input, message} 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' import {showErrorAPI} from '../utils/functions/showErrorAPI' interface FieldType { username: string password: string } export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) { const navigate = useNavigate() const [messageApi, contextHolder] = message.useMessage() const {setIsAuthenticated} = useContext(AuthenticatedContext) const [loading, setLoading] = useState(false) useEffect(() => { getUser().then(() => { setIsAuthenticated(true) navigate('/home') }) }, []) const onFinish = (data: FieldType) => { setLoading(true) login(data.username, data.password).then(() => { setIsAuthenticated(true) navigate('/home') }).catch((e) => { setIsAuthenticated(false) showErrorAPI(e, messageApi) setLoading(false) }) } return ( <> {contextHolder}
label={t`Password`} name='password' rules={[{required: true, message: t`Required`}]} > {ssoLogin && } ) }