File tree Expand file tree Collapse file tree 3 files changed +36
-8
lines changed Expand file tree Collapse file tree 3 files changed +36
-8
lines changed Original file line number Diff line number Diff line change 1
- import React , { ReactNode } from 'react'
1
+ import React , { ReactNode , useState } from 'react'
2
2
import Navbar from './navbar/Navbar'
3
3
4
4
type LayoutProps = {
@@ -12,10 +12,20 @@ export default function Layout({
12
12
children,
13
13
sidebarContentRight,
14
14
} : LayoutProps ) {
15
+ const [ isDrawerOpen , setIsDrawerOpen ] = useState ( false )
15
16
return (
16
17
< div className = "mx-auto bg-gray-200 dark:bg-dark-800 min-h-screen" >
17
- < Navbar />
18
- < div className = "grid grid-cols-9 gap-10 mt-10 px-4 md:px-60 md:pt-10 " >
18
+ < Navbar isDrawerOpen = { isDrawerOpen } setIsDrawerOpen = { setIsDrawerOpen } />
19
+ { sidebarContentLeft && (
20
+ < aside
21
+ className = { `col-span-2 md:hidden mt-16 ${
22
+ isDrawerOpen ? 'block' : 'hidden'
23
+ } `}
24
+ >
25
+ { sidebarContentLeft }
26
+ </ aside >
27
+ ) }
28
+ < div className = "grid grid-cols-9 gap-10 mt-10 px-4 md:px-10 xl:px-60 md:pt-10 " >
19
29
{ sidebarContentLeft && (
20
30
< aside className = "col-span-2 hidden md:block" >
21
31
{ sidebarContentLeft }
Original file line number Diff line number Diff line change 1
1
import { useState } from 'react'
2
2
3
- const HamburgerMenu = ( ) => {
4
- const [ isOpen , setIsOpen ] = useState ( false )
3
+ type HamburgerMenuProps = {
4
+ className ?: string
5
+ isOpen : boolean
6
+ setIsOpen : ( isOpen : boolean ) => void
7
+ }
8
+
9
+ const HamburgerMenu = ( {
10
+ className,
11
+ isOpen,
12
+ setIsOpen,
13
+ } : HamburgerMenuProps ) => {
5
14
const genericHamburgerLine = `h-1 w-6 my-0.5 rounded-full bg-black transition ease transform duration-300`
6
15
7
16
return (
8
17
< button
9
- className = " flex flex-col h-10 w-10 rounded justify-center items-center group"
18
+ className = { ` flex flex-col h-10 w-10 rounded justify-center items-center group ${ className } ` }
10
19
onClick = { ( ) => setIsOpen ( ! isOpen ) }
11
20
>
12
21
< div
Original file line number Diff line number Diff line change @@ -8,7 +8,12 @@ const ThemeButton = dynamic(() => import('./ThemeButton'), {
8
8
ssr : false ,
9
9
} )
10
10
11
- export default function Navbar ( ) {
11
+ type NavbarProps = {
12
+ isDrawerOpen : boolean
13
+ setIsDrawerOpen : ( isOpen : boolean ) => void
14
+ }
15
+
16
+ export default function Navbar ( { isDrawerOpen, setIsDrawerOpen } : NavbarProps ) {
12
17
const router = useRouter ( )
13
18
const { pathname } = router
14
19
return (
@@ -28,7 +33,11 @@ export default function Navbar() {
28
33
</ Link >
29
34
</ Button >
30
35
) }
31
- < HamburgerMenu />
36
+ < HamburgerMenu
37
+ className = "lg:hidden"
38
+ isOpen = { isDrawerOpen }
39
+ setIsOpen = { setIsDrawerOpen }
40
+ />
32
41
</ div >
33
42
</ div >
34
43
< style jsx > { `
You can’t perform that action at this time.
0 commit comments