stacker.news/components/header.js

59 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-03-25 19:29:24 +00:00
import { signOut, signIn, useSession } from 'next-auth/client'
2021-04-12 18:05:09 +00:00
import Navbar from 'react-bootstrap/Navbar'
import Nav from 'react-bootstrap/Nav'
import Link from 'next/link'
import styles from './header.module.css'
import { useRouter } from 'next/router'
2021-04-14 00:57:32 +00:00
import { Container } from 'react-bootstrap'
2021-03-25 19:29:24 +00:00
export default function Header () {
const [session, loading] = useSession()
2021-04-12 18:05:09 +00:00
const router = useRouter()
2021-03-25 19:29:24 +00:00
2021-04-12 18:05:09 +00:00
const Corner = () => {
if (loading) {
return null
}
2021-03-25 19:29:24 +00:00
2021-04-12 18:05:09 +00:00
if (session) {
return (
<>
<Nav.Item>{session.user.name}</Nav.Item>
<Nav.Item>
<Nav.Link onClick={signOut}>logout</Nav.Link>
</Nav.Item>
</>
)
} else {
return <Nav.Link onClick={signIn}>login</Nav.Link>
}
2021-03-25 19:29:24 +00:00
}
return (
2021-04-12 18:05:09 +00:00
<>
2021-04-14 00:57:32 +00:00
<Navbar bg='primary' className={styles.navbar}>
<Container>
<Link href='/' passHref>
<Navbar.Brand className={styles.brand}>STACKER NEWS</Navbar.Brand>
</Link>
<Nav className='mr-auto align-items-center' activeKey={router.pathname}>
<Nav.Item>
<Link href='/recent' passHref>
<Nav.Link>recent</Nav.Link>
</Link>
</Nav.Item>
<Nav.Item>
<Link href='/post' passHref>
<Nav.Link>post</Nav.Link>
</Link>
</Nav.Item>
</Nav>
<Nav className='ml-auto align-items-center'>
<Corner />
</Nav>
</Container>
2021-04-12 18:05:09 +00:00
</Navbar>
</>
2021-03-25 19:29:24 +00:00
)
}