From 36c6dd138ff660985c9e41fa55716d39cf14dc86 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Mon, 17 Mar 2025 09:59:55 +0800 Subject: [PATCH] feat(dashboard): add layout component for dashboard --- src/app/(app)/dashboard/layout.tsx | 22 +++++++++++++ src/app/dashboard/page.tsx | 52 ------------------------------ 2 files changed, 22 insertions(+), 52 deletions(-) create mode 100644 src/app/(app)/dashboard/layout.tsx delete mode 100644 src/app/dashboard/page.tsx diff --git a/src/app/(app)/dashboard/layout.tsx b/src/app/(app)/dashboard/layout.tsx new file mode 100644 index 0000000..c046016 --- /dev/null +++ b/src/app/(app)/dashboard/layout.tsx @@ -0,0 +1,22 @@ +import { auth } from "@/lib/auth"; +import { User } from "@prisma/client"; +import { redirect } from "next/navigation"; + +interface DashboardLayoutProps { + admin: React.ReactNode; + guest: React.ReactNode; +} + +export default async function DashboardLayout({ + admin, + guest, +}: DashboardLayoutProps) { + const session = await auth(); + if (!session?.user) { + redirect("/sign-in"); + } + + const user = session.user as User; + + return user.role === "ADMIN" ? admin : guest; +} diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx deleted file mode 100644 index 23034ab..0000000 --- a/src/app/dashboard/page.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { AppSidebar } from "@/components/app-sidebar" -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb" -import { Separator } from "@/components/ui/separator" -import { - SidebarInset, - SidebarProvider, - SidebarTrigger, -} from "@/components/ui/sidebar" - -export default function Page() { - return ( - - - -
-
- - - - - - - Building Your Application - - - - - Data Fetching - - - -
-
-
-
-
-
-
-
-
-
- - - ) -}