diff --git a/auth.ts b/auth.ts
index 71604fb..1b7c8f1 100644
--- a/auth.ts
+++ b/auth.ts
@@ -5,7 +5,7 @@ import getEnv from "./lib/env-entry";
export const { handlers, signIn, signOut, auth } = NextAuth({
secret: process.env.AUTH_SECRET ?? "this_is_nezha_dash_web_secret",
- trustHost: process.env.AUTH_TRUST_HOST as boolean | undefined ?? true,
+ trustHost: (process.env.AUTH_TRUST_HOST as boolean | undefined) ?? true,
pages: {
signIn: "/",
},
diff --git a/components/SignIn.tsx b/components/SignIn.tsx
index e17507d..31e6913 100644
--- a/components/SignIn.tsx
+++ b/components/SignIn.tsx
@@ -2,14 +2,18 @@
import { getCsrfToken, signIn } from "next-auth/react";
import { useTranslations } from "next-intl";
-import { useSearchParams, useRouter } from "next/navigation";
+import { useRouter, useSearchParams } from "next/navigation";
import { useEffect, useState } from "react";
+import { Loader } from "./loading/Loader";
+
export function SignIn() {
const t = useTranslations("SignIn");
const [csrfToken, setCsrfToken] = useState("");
const [errorState, setErrorState] = useState(false);
+ const [loading, setLoading] = useState(false);
+ const [successState, setSuccessState] = useState(false);
const search = useSearchParams();
const error = search.get("error");
@@ -31,6 +35,7 @@ export function SignIn() {
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
+ setLoading(true);
const formData = new FormData(e.currentTarget);
const password = formData.get("password");
const res = await signIn("credentials", {
@@ -40,9 +45,12 @@ export function SignIn() {
if (res?.error) {
setErrorState(true);
} else {
+ setErrorState(false);
+ setSuccessState(true);
router.push("/");
router.refresh();
}
+ setLoading(false);
};
return (
@@ -58,6 +66,11 @@ export function SignIn() {
{t("ErrorMessage")}
)}
+ {successState && (
+
+ {t("SuccessMessage")}
+
+ )}
{t("SignInMessage")}
-