-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathNavbar.tsx
62 lines (55 loc) · 1.99 KB
/
Navbar.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import Link from 'next/link';
import Img from 'next/image';
import { useContext } from 'react';
import { UserContext } from '@lib/context';
import { useRouter } from 'next/router';
import { signOut } from 'firebase/auth';
import { auth } from '@lib/firebase';
// Top navbar
export default function Navbar(): JSX.Element {
const { user, username } = useContext(UserContext);
const router = useRouter();
const signOutNow = () => {
signOut(auth);
router.reload();
}
return (
<nav className="navbar">
<ul>
<li>
<Link passHref={true} href="/">
<button className="btn-logo">FEED</button>
</Link>
</li>
{/* user is signed-in and has username */}
{username && (
<>
<li className="push-left">
<button onClick={signOutNow}>Sign Out</button>
</li>
<li>
<Link passHref href="/admin">
<button className="btn-blue">Write Posts</button>
</Link>
</li>
<li>
{user?.photoURL && (
<Link passHref href={`/${username}`}>
<Img alt={user?.displayName} src={user?.photoURL} width="50" height="50" />
</Link>
)}
</li>
</>
)}
{/* user is not signed OR has not created username */}
{!username && (
<li>
<Link passHref href="/enter">
<button className="btn-blue">Log in</button>
</Link>
</li>
)}
</ul>
</nav>
);
}