From 467a3281d09daadf4cfe865f54d1a817c7ed4958 Mon Sep 17 00:00:00 2001 From: Vincent Date: Fri, 31 Oct 2025 13:56:11 +0100 Subject: [PATCH] fix: login form loading --- assets/components/LoginForm.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/assets/components/LoginForm.tsx b/assets/components/LoginForm.tsx index 70efb4b..686b3ae 100644 --- a/assets/components/LoginForm.tsx +++ b/assets/components/LoginForm.tsx @@ -1,6 +1,6 @@ import {Button, Flex, Form, Input, message} from 'antd' import {t} from 'ttag' -import React, {useContext, useEffect} from 'react' +import React, {useContext, useEffect, useState} from 'react' import {getUser, login} from '../utils/api' import {AuthenticatedContext} from '../pages/LoginPage' import {useNavigate} from 'react-router-dom' @@ -16,6 +16,7 @@ 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(() => { @@ -25,12 +26,15 @@ export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) { }, []) const onFinish = (data: FieldType) => { + setLoading(true); + login(data.username, data.password).then(() => { setIsAuthenticated(true) navigate('/home') }).catch((e) => { setIsAuthenticated(false) showErrorAPI(e, messageApi) + setLoading(true); }) } return ( @@ -43,6 +47,7 @@ export function LoginForm({ssoLogin}: { ssoLogin?: boolean }) { style={{maxWidth: 600}} onFinish={onFinish} autoComplete='off' + disabled={loading} >