diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 5b636ae..3125cfe 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,10 +1,7 @@
import type { Metadata } from "next"
import { Ubuntu } from "next/font/google"
import "./globals.css"
-import { getServerSession } from "next-auth"
-import { authOptions } from "@/lib/nextAuth"
import { Header } from "@/components/Header"
-import { Login } from "@/components/Login"
import { Toaster } from "@/components/ui/toaster"
const ubuntu = Ubuntu({ weight: ["400"], subsets: ["latin"] })
@@ -20,13 +17,11 @@ interface Props {
}
export default async function RootLayout({ children }: Props) {
- const session = await getServerSession(authOptions)
-
return (
-
- {session ? children : }
+
+ {children}
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
new file mode 100644
index 0000000..acdff59
--- /dev/null
+++ b/src/app/login/page.tsx
@@ -0,0 +1,14 @@
+import { redirect } from "next/navigation"
+import { getServerSession } from "next-auth"
+import { authOptions } from "@/lib/nextAuth"
+import { LoginForm } from "@/components/LoginForm"
+
+export default async function Login() {
+ const session = await getServerSession(authOptions)
+
+ if (session) {
+ redirect("/")
+ }
+
+ return
+}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 1b2cbe0..970cde8 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,11 +1,18 @@
import { EmptyState } from "@/components/EmptyState"
import { Issues } from "@/components/Issues"
import { ProjectSelect } from "@/components/ProjectSelect"
+import { authOptions } from "@/lib/nextAuth"
import { getProjectsForUser } from "@/lib/project"
import { ServerCog } from "lucide-react"
+import { getServerSession } from "next-auth"
import Link from "next/link"
+import { redirect } from "next/navigation"
export default async function Home() {
+ const session = await getServerSession(authOptions)
+
+ if (!session) redirect("/login")
+
const projects = await getProjectsForUser()
return (
diff --git a/src/app/profile/page.tsx b/src/app/profile/page.tsx
index 0b34845..9b2580b 100644
--- a/src/app/profile/page.tsx
+++ b/src/app/profile/page.tsx
@@ -1,13 +1,17 @@
import { EditProject } from "@/components/EditProject"
import { EmptyState } from "@/components/EmptyState"
-import { Issues } from "@/components/Issues"
import { NewProject } from "@/components/NewProject"
-import { ProjectSelect } from "@/components/ProjectSelect"
+import { authOptions } from "@/lib/nextAuth"
import { getProjectsForUser } from "@/lib/project"
import { ServerCog } from "lucide-react"
-import Link from "next/link"
+import { getServerSession } from "next-auth"
+import { redirect } from "next/navigation"
+
+export default async function Profile() {
+ const session = await getServerSession(authOptions)
+
+ if (!session) redirect("/login")
-export default async function Home() {
const projects = await getProjectsForUser()
return (
diff --git a/src/app/project/[projectId]/page.tsx b/src/app/project/[projectId]/page.tsx
index 5bd6c4a..d6021e4 100644
--- a/src/app/project/[projectId]/page.tsx
+++ b/src/app/project/[projectId]/page.tsx
@@ -1,15 +1,22 @@
import { EmptyState } from "@/components/EmptyState"
import { Issues } from "@/components/Issues"
import { ProjectSelect } from "@/components/ProjectSelect"
+import { authOptions } from "@/lib/nextAuth"
import { getProjectsForUser } from "@/lib/project"
import { ServerCog } from "lucide-react"
+import { getServerSession } from "next-auth"
import Link from "next/link"
+import { redirect } from "next/navigation"
interface Props {
params: { projectId: string }
}
export default async function Project({ params }: Props) {
+ const session = await getServerSession(authOptions)
+
+ if (!session) redirect("/login")
+
const projects = await getProjectsForUser()
return (
diff --git a/src/components/Header/index.tsx b/src/components/Header/index.tsx
index 51a4520..4ad8c1f 100644
--- a/src/components/Header/index.tsx
+++ b/src/components/Header/index.tsx
@@ -1,12 +1,11 @@
-import { Session } from "next-auth"
+import { getServerSession } from "next-auth"
import { Logo } from "../Logo"
import { Menu } from "./Menu"
+import { authOptions } from "@/lib/nextAuth"
-interface Props {
- session: Session | null
-}
+export async function Header() {
+ const session = await getServerSession(authOptions)
-export async function Header({ session }: Props) {
return (
+