From 307ea9fb838e9a26e8df5218407bb3627391f34f Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 29 Jul 2023 22:58:37 +0800 Subject: ... --- FrontEnd/src/pages/login/index.css | 4 + FrontEnd/src/pages/login/index.tsx | 2 +- FrontEnd/src/pages/register/index.css | 5 ++ FrontEnd/src/pages/register/index.tsx | 138 ++++++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 FrontEnd/src/pages/register/index.css create mode 100644 FrontEnd/src/pages/register/index.tsx (limited to 'FrontEnd/src/pages') diff --git a/FrontEnd/src/pages/login/index.css b/FrontEnd/src/pages/login/index.css index d78b3587..ef97359c 100644 --- a/FrontEnd/src/pages/login/index.css +++ b/FrontEnd/src/pages/login/index.css @@ -7,4 +7,8 @@ .login-page-welcome { text-align: center; font-size: 2em; +} + +.login-page-error { + color: var(--cru-danger-color); } \ No newline at end of file diff --git a/FrontEnd/src/pages/login/index.tsx b/FrontEnd/src/pages/login/index.tsx index 9aee455f..a09e32c3 100644 --- a/FrontEnd/src/pages/login/index.tsx +++ b/FrontEnd/src/pages/login/index.tsx @@ -111,7 +111,7 @@ export default function LoginPage() {
{c("welcome")}
- {error ?

{c(error)}

: null} + {error ?

{c(error)}

: null}
{ + const result: InputErrorDict = {}; + if (username === "") { + result["username"] = "register.error.usernameEmpty"; + } + if (password === "") { + result["password"] = "register.error.passwordEmpty"; + } + if (confirmPassword !== password) { + result["confirmPassword"] = "register.error.confirmPasswordWrong"; + } + if (registerCode === "") { + result["registerCode"] = "register.error.registerCodeEmpty"; + } + return result; + }, + }, + dataInit: {}, + }, + }); + + const [process, setProcess] = useState(false); + const [resultError, setResultError] = useState(null); + + useEffect(() => { + if (user != null) { + navigate("/"); + } + }, [navigate, user]); + + return ( +
+ + {resultError &&
{t(resultError)}
} + { + const confirmResult = confirm(); + if (confirmResult.type === "ok") { + const { username, password, registerCode } = confirmResult.values; + setProcess(true); + setAllDisabled(true); + void getHttpTokenClient() + .register({ + username: username as string, + password: password as string, + registerCode: registerCode as string, + }) + .then( + () => { + void userService + .login( + { + username: username as string, + password: password as string, + }, + true, + ) + .then(() => { + navigate("/"); + }); + }, + (error) => { + if (error instanceof HttpBadRequestError) { + setResultError("register.error.registerCodeInvalid"); + } else { + setResultError("error.network"); + } + setProcess(false); + setAllDisabled(false); + }, + ); + } + }} + /> +
+ ); +} -- cgit v1.2.3