to do calendar view
This commit is contained in:
@@ -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 (
|
||||
<>
|
||||
<main>
|
||||
<SessionProvider>
|
||||
<SidebarProvider
|
||||
style={
|
||||
@@ -33,6 +45,6 @@ export default function AuthLayout({ children }: { children: ReactNode }) {
|
||||
</SidebarInset>
|
||||
</SidebarProvider>
|
||||
</SessionProvider>
|
||||
</>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
|
||||
20
app/api/users/current-user/route.ts
Normal file
20
app/api/users/current-user/route.ts
Normal file
@@ -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);
|
||||
}
|
||||
@@ -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({
|
||||
<body
|
||||
className="bg-brand-background text-brand-text"
|
||||
>
|
||||
{children}
|
||||
<Toaster />
|
||||
<Provider>
|
||||
<UserContextProvider>
|
||||
{children}
|
||||
</UserContextProvider>
|
||||
<Toaster />
|
||||
</Provider>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user