summaryrefslogtreecommitdiff
path: root/components/topnav.tsx
blob: 083471dd6f0f9796c55bf6bb84be45947c5a53f6 (plain)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import { useState } from 'react'
import { 
  Link,
  Box, 
  HStack, 
  IconButton,
  Menu,
  Heading,
  MenuButton,
  MenuList,
  MenuItem,
  MenuItemOption,
  MenuGroup,
  MenuOptionGroup,
  MenuDivider,
  useMediaQuery,
  Container
} from '@chakra-ui/react'
import { GiHamburgerMenu } from "react-icons/gi"
import { DiGithubBadge } from "react-icons/di"

type NavLinkType = {
  to: string,
  children: any,
}

function NavLink({to, children} : NavLinkType) {
    return <a href={to} className={`mx-4`}>
        {children}
    </a>
}

function MobileNav() {
  return <Menu>
    <MenuButton as={IconButton} icon={<GiHamburgerMenu/>}>
      Action
    </MenuButton>
    <MenuList>
      <MenuItem icon={<DiGithubBadge/>}>View source</MenuItem>
    </MenuList>
  </Menu>
}

function DesktopNav() {
  return <HStack>
    <Box>
    </Box>
    <Box>
      <Link href="https://github.com/michalsapka/michal-sapka-pl">Source code</Link>
    </Box>
  </HStack>
}

function Navigation() {
   const [isMobile] = useMediaQuery("(max-width: 768px)")

  let navigationComponent = isMobile ? MobileNav : DesktopNav

  
  return <HStack as="nav">{navigationComponent()}</HStack>
}

export default function Navbar() {
  
  return <Box
    as="header"
    position="fixed"
    backdropFilter="auto" 
    backdropBlur="6px"
    width="100%"
    pt="5px"
  >
    <Container 
      maxW="xl"
      mt="0"
      mb="1"
    >
      <HStack>
        <Heading flex={[1,1,0,0]}>Michal </Heading>
        <Navigation/>
      </HStack>
    </Container>
  </Box>
}