Skip to content

Commit 1dec307

Browse files
committed
chore: header login / logout
1 parent af8fb2b commit 1dec307

File tree

3 files changed

+30
-33
lines changed

3 files changed

+30
-33
lines changed

Diff for: src/app/page.tsx

+1-28
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,7 @@
1-
import Header from "@/components/header";
2-
import { Button } from "@/components/ui/button";
3-
import { LoginButton, LogoutButton } from "@/components/ui/buttons";
4-
import { getSession } from "@/lib/session";
5-
import { prisma } from "@/lib/prisma";
6-
import Image from "next/image";
7-
81
export default async function Home() {
9-
const users = await prisma.user.findMany();
10-
const session = await getSession();
11-
122
return (
133
<>
14-
<main className="flex min-h-screen flex-col items-center justify-between p-24">
15-
<Button>Button</Button>
16-
{session ? (
17-
<div className="flex space-x-2 items-center">
18-
<Image
19-
className="rounded-full"
20-
src={session?.user?.image!}
21-
alt="user avatar"
22-
height={40}
23-
width={40}
24-
/>
25-
<p className="text-gray-700 font-bold">{session?.user?.name}</p>
26-
<LogoutButton />
27-
</div>
28-
) : (
29-
<LoginButton />
30-
)}
31-
</main>
4+
<main className="flex min-h-screen flex-col items-center justify-between p-24"></main>
325
</>
336
);
347
}

Diff for: src/app/race/page.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import TypingCode from "./typingCode";
55
export default async function Race() {
66
const user = await getCurrentUser();
77

8-
console.log(user);
9-
108
return (
119
<>
1210
<main className="flex min-h-screen flex-col items-center justify-between p-24">

Diff for: src/components/header.tsx

+29-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import Link from "next/link";
55
import React, { useState } from "react";
66

77
import { Button } from "./ui/button";
8+
import { SessionProvider, useSession } from "next-auth/react";
9+
import { LoginButton, LogoutButton } from "./ui/buttons";
810

911
const Header = () => {
1012
const [state, setState] = useState(false);
@@ -15,6 +17,8 @@ const Header = () => {
1517
{ title: "About", path: "/" },
1618
];
1719

20+
const session = useSession();
21+
1822
return (
1923
<div>
2024
<nav className="w-full border-b md:border-0 md:static">
@@ -82,13 +86,35 @@ const Header = () => {
8286
})}
8387
</ul>
8488
</div>
85-
<div className="hidden md:inline-block">
86-
<Button>Login</Button>
89+
<div className="hidden md:flex gap-4 items-center">
90+
{session.status !== "authenticated" ? (
91+
<LoginButton />
92+
) : (
93+
<>
94+
<Image
95+
className="rounded-full"
96+
src={session?.data.user.image ?? ""}
97+
alt="user avatar"
98+
height={40}
99+
width={40}
100+
/>
101+
<p className="text-gray-700 font-bold">
102+
{session?.data.user?.name}
103+
</p>
104+
<LogoutButton />
105+
</>
106+
)}
87107
</div>
88108
</div>
89109
</nav>
90110
</div>
91111
);
92112
};
93113

94-
export default Header;
114+
export default function WrappedHeader() {
115+
return (
116+
<SessionProvider>
117+
<Header />
118+
</SessionProvider>
119+
);
120+
}

0 commit comments

Comments
 (0)