fix: login form loading

This commit is contained in:
Vincent 2025-10-31 13:56:11 +01:00
parent a6eec5cfee
commit 467a3281d0
No known key found for this signature in database
GPG Key ID: 056662E78D70E358

View File

@ -1,6 +1,6 @@
import {Button, Flex, Form, Input, message} from 'antd' import {Button, Flex, Form, Input, message} from 'antd'
import {t} from 'ttag' import {t} from 'ttag'
import React, {useContext, useEffect} from 'react' import React, {useContext, useEffect, useState} from 'react'
import {getUser, login} from '../utils/api' import {getUser, login} from '../utils/api'
import {AuthenticatedContext} from '../pages/LoginPage' import {AuthenticatedContext} from '../pages/LoginPage'
import {useNavigate} from 'react-router-dom' import {useNavigate} from 'react-router-dom'
@ -16,6 +16,7 @@ export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) {
const navigate = useNavigate() const navigate = useNavigate()
const [messageApi, contextHolder] = message.useMessage() const [messageApi, contextHolder] = message.useMessage()
const {setIsAuthenticated} = useContext(AuthenticatedContext) const {setIsAuthenticated} = useContext(AuthenticatedContext)
const [loading, setLoading] = useState(false);
useEffect(() => { useEffect(() => {
getUser().then(() => { getUser().then(() => {
@ -25,12 +26,15 @@ export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) {
}, []) }, [])
const onFinish = (data: FieldType) => { const onFinish = (data: FieldType) => {
setLoading(true);
login(data.username, data.password).then(() => { login(data.username, data.password).then(() => {
setIsAuthenticated(true) setIsAuthenticated(true)
navigate('/home') navigate('/home')
}).catch((e) => { }).catch((e) => {
setIsAuthenticated(false) setIsAuthenticated(false)
showErrorAPI(e, messageApi) showErrorAPI(e, messageApi)
setLoading(true);
}) })
} }
return ( return (
@ -43,6 +47,7 @@ export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) {
style={{maxWidth: 600}} style={{maxWidth: 600}}
onFinish={onFinish} onFinish={onFinish}
autoComplete='off' autoComplete='off'
disabled={loading}
> >
<Form.Item <Form.Item
label={t`Email address`} label={t`Email address`}