rsnext/examples/with-passport-and-next-connect/components/Navbar.js
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

80 lines
1.7 KiB
JavaScript

import Link from "next/link";
import { useUser } from "../lib/hooks";
export default function Navbar() {
const [user, { mutate }] = useUser();
async function handleLogout() {
await fetch("/api/logout");
mutate({ user: null });
}
return (
<header>
<nav>
<ul>
<li>
<Link href="/" legacyBehavior>
Home
</Link>
</li>
{user ? (
<>
<li>
<Link href="/profile" legacyBehavior>
Profile
</Link>
</li>
<li>
<a role="button" onClick={handleLogout}>
Logout
</a>
</li>
</>
) : (
<>
<li>
<Link href="/signup" legacyBehavior>
Sign up
</Link>
</li>
<li>
<Link href="/login" legacyBehavior>
Login
</Link>
</li>
</>
)}
</ul>
</nav>
<style jsx>{`
nav {
max-width: 42rem;
margin: 0 auto;
padding: 0.2rem 1.25rem;
}
ul {
display: flex;
list-style: none;
margin-left: 0;
padding-left: 0;
}
li {
margin-right: 1rem;
}
li:first-child {
margin-left: auto;
}
a {
color: #fff;
text-decoration: none;
cursor: pointer;
}
header {
color: #fff;
background-color: #666;
}
`}</style>
</header>
);
}