Merge branch 'main' into cloudflare

This commit is contained in:
hamster1963 2024-10-21 10:32:22 +08:00
commit e9b9ff7778
2 changed files with 27 additions and 39 deletions

View File

@ -11,15 +11,11 @@ type DashboardProps = {
export default async function MainLayout({ children }: DashboardProps) { export default async function MainLayout({ children }: DashboardProps) {
const session = await auth(); const session = await auth();
if (!session && getEnv("SitePassword")) {
return <SignIn />;
}
return ( return (
<div className="flex min-h-screen w-full flex-col"> <div className="flex min-h-screen w-full flex-col">
<main className="flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-muted/40 p-4 md:p-10 md:pt-8"> <main className="flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-muted/40 p-4 md:p-10 md:pt-8">
<Header /> <Header />
{children} {!session && getEnv("SitePassword") ? <SignIn /> : children}
<Footer /> <Footer />
</main> </main>
</div> </div>

View File

@ -1,13 +1,11 @@
"use client"; "use client";
import Footer from "@/app/[locale]/(main)/footer";
import Header from "@/app/[locale]/(main)/header";
import { getCsrfToken } from "next-auth/react"; import { getCsrfToken } from "next-auth/react";
import { useTranslations } from "next-intl"; import { useTranslations } from "next-intl";
import { useSearchParams } from "next/navigation"; import { useSearchParams } from "next/navigation";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
export function SignIn({}) { export function SignIn() {
const t = useTranslations("SignIn"); const t = useTranslations("SignIn");
const [csrfToken, setCsrfToken] = useState(""); const [csrfToken, setCsrfToken] = useState("");
@ -31,36 +29,30 @@ export function SignIn({}) {
}, []); }, []);
return ( return (
<div className="flex min-h-screen w-full flex-col"> <form
<main className="flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-muted/40 p-4 md:p-10 md:pt-8"> className="flex flex-col items-center justify-start gap-4 p-4 "
<Header /> method="post"
<form action="/api/auth/callback/credentials"
className="flex flex-col items-center justify-start gap-4 p-4 " >
method="post" <input type="hidden" name="csrfToken" value={csrfToken} />
action="/api/auth/callback/credentials" <section className="flex flex-col items-start gap-2">
> <label className="flex flex-col items-start gap-1 ">
<input type="hidden" name="csrfToken" value={csrfToken} /> {errorState && (
<section className="flex flex-col items-start gap-2"> <p className="text-red-500 text-sm font-semibold">
<label className="flex flex-col items-start gap-1 "> {t("ErrorMessage")}
{errorState && ( </p>
<p className="text-red-500 text-sm font-semibold"> )}
{t("ErrorMessage")} <p className="text-base font-semibold">{t("SignInMessage")}</p>
</p> <input
)} className="px-1 border-[1px] rounded-[5px]"
<p className="text-base font-semibold">{t("SignInMessage")}</p> name="password"
<input type="password"
className="px-1 border-[1px] rounded-[5px]" />
name="password" </label>
type="password" <button className=" px-1.5 py-0.5 w-fit text-sm font-semibold rounded-[8px] border bg-card hover:brightness-95 transition-all text-card-foreground shadow-lg shadow-neutral-200/40 dark:shadow-none">
/> {t("Submit")}
</label> </button>
<button className=" px-1.5 py-0.5 w-fit text-sm font-semibold rounded-[8px] border bg-card hover:brightness-95 transition-all text-card-foreground shadow-lg shadow-neutral-200/40 dark:shadow-none"> </section>
{t("Submit")} </form>
</button>
</section>
</form>
<Footer />
</main>
</div>
); );
} }