diff --git a/app/(auth)/layout.tsx b/app/(auth)/layout.tsx
index 6043603..24dbfd7 100644
--- a/app/(auth)/layout.tsx
+++ b/app/(auth)/layout.tsx
@@ -1,16 +1,28 @@
'use client'
import { SessionProvider } from 'next-auth/react'
-import { ReactNode } from 'react'
-import DashboardNavbar from '@/components/DashboardNavbar'
+import { ReactNode, useContext } from 'react'
import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar'
import { AppSidebar } from '@/components/app-sidebar'
import { SiteHeader } from '@/components/site-header'
+import { UserContext } from '@/context/UserContext'
+import { redirect } from 'next/navigation'
export default function AuthLayout({ children }: { children: ReactNode }) {
+ const { currentUser, loading } = useContext(UserContext)
+
+ if (loading) {
+ return <>Loading...>
+ }
+
+ if (!currentUser) {
+ redirect('/login')
+ }
+
+ console.log(currentUser)
return (
- <>
+
- >
+
)
}
diff --git a/app/api/users/current-user/route.ts b/app/api/users/current-user/route.ts
new file mode 100644
index 0000000..34d1737
--- /dev/null
+++ b/app/api/users/current-user/route.ts
@@ -0,0 +1,20 @@
+import { getServerSession } from "next-auth";
+import { authOptions } from "../../auth/[...nextauth]/route";
+import { NextResponse } from "next/server";
+import { queries } from "@/lib/queries";
+
+export async function GET() {
+ const session = await getServerSession(authOptions);
+
+ if (!session?.user.id) {
+ return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
+ }
+
+ const user = await queries.fetchCurrentUser(session.user.id)
+
+ if (!user) {
+ return NextResponse.json({ error: 'User not found' }, { status: 404 });
+ }
+
+ return NextResponse.json(user);
+}
\ No newline at end of file
diff --git a/app/layout.tsx b/app/layout.tsx
index 639ad46..ee55994 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,6 +1,8 @@
import type { Metadata } from "next";
import "./globals.css";
import { Toaster } from "@/components/ui/sonner";
+import Provider from "@/components/auth/Provider";
+import { UserContextProvider } from "@/context/UserContext";
export const metadata: Metadata = {
title: "Wedding Planner",
@@ -18,8 +20,12 @@ export default async function RootLayout({
- {children}
-
+
+
+ {children}
+
+
+