feat(admin): Server Action'larla kullanıcı yönetimi ve gerçek oturumlu sayfalar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 02:02:00 +03:00
parent 5191a5cce1
commit 2035f73e7d
18 changed files with 437 additions and 270 deletions
+13
View File
@@ -1,14 +1,27 @@
import type { Metadata } from "next";
import { redirect } from "next/navigation";
import { Suspense } from "react";
import { Logo } from "@/components/brand/logo";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { tr } from "@/i18n/tr";
import { getCurrentUser } from "@/lib/dal";
import { LoginForm } from "./login-form";
export const metadata: Metadata = { title: tr.auth.loginTitle };
/** Oturum açıksa dashboard'a yönlendirir (istek anında, Suspense içinde). */
async function RedirectIfSignedIn() {
const user = await getCurrentUser();
if (user) redirect("/dashboard");
return null;
}
export default function LoginPage() {
return (
<main className="flex w-full max-w-sm flex-col items-center gap-6">
<Suspense fallback={null}>
<RedirectIfSignedIn />
</Suspense>
<Logo priority className="scale-125" />
<Card className="w-full">
<CardHeader>