diff --git a/app/[locale]/(main)/layout.tsx b/app/[locale]/(main)/layout.tsx index 3991299..dd0530d 100644 --- a/app/[locale]/(main)/layout.tsx +++ b/app/[locale]/(main)/layout.tsx @@ -4,14 +4,17 @@ import { auth } from "@/auth"; import getEnv from "@/lib/env-entry"; import React from "react"; import { redirect } from "next/navigation"; +import { getLocale } from "next-intl/server"; type DashboardProps = { children: React.ReactNode; }; export default async function MainLayout({ children }: DashboardProps) { const session = await auth() + const locale = await getLocale() + if (!session && getEnv("SITE_PASSWORD")) { - redirect("/api/auth/signin"); + redirect(`/${locale}/login`); } return ( diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx new file mode 100644 index 0000000..ffbae6f --- /dev/null +++ b/app/[locale]/login/page.tsx @@ -0,0 +1,48 @@ +import Footer from "@/app/[locale]/(main)/footer" +import Header from "@/app/[locale]/(main)/header" +import { auth, signIn } from "@/auth" +import { getLocale } from "next-intl/server" +import { redirect } from "next/navigation" + +export const runtime = 'edge'; + +export default async function Login() { + + const locale = await getLocale() + + const session = await auth() + if (session) { + redirect(`/${locale}`) + } + + + async function handleSubmit(formData: FormData) { + 'use server' + try { + await signIn("credentials", formData, { redirectTo: `/${locale}` }) + } catch (error) { + redirect(`/${locale}/login`) + } + } + + return ( +