1- import { AppShell , Button } from '@mantine/core' ;
1+ import { AppShell , Burger , Button } from '@mantine/core' ;
2+ import { useDisclosure } from '@mantine/hooks' ;
23import { motion } from 'framer-motion' ;
34import { useState } from 'react' ;
45import { Link , useLocation } from 'react-router' ;
@@ -92,28 +93,38 @@ const NavLink = ({ item, onNavigate, className }: NavLinkProps) => {
9293
9394const ProtectedLayout = ( { children } : ProtectedLayoutProps ) => {
9495 const [ createBucketModalOpened , setCreateBucketModalOpened ] = useState ( false ) ;
96+ const [ mobileOpened , { toggle : toggleMobile } ] = useDisclosure ( ) ;
9597
9698 // const links = navLinks.map((item) => <NavLink key={item.label} item={item} onNavigate={close} />);
9799
98100 return (
99101 < AppShell
100102 header = { { height : 60 } }
101- navbar = { { width : 200 , breakpoint : 'md' , collapsed : { mobile : false } } }
103+ navbar = { {
104+ width : 200 ,
105+ breakpoint : 'md' ,
106+ collapsed : { mobile : ! mobileOpened } ,
107+ } }
102108 padding = "md"
103109 classNames = { {
104- main : 'bg-white min-h-screen dark:bg-zinc-800 border rounded-md ' ,
110+ main : 'bg-white min-h-screen dark:bg-zinc-800' ,
105111 navbar : 'bg-gray-50 dark:bg-zinc-900 border-r-0' ,
106112 header : 'bg-gray-50 dark:bg-zinc-900 border-b-0' ,
107113 } }
108114 >
109115 < AppShell . Header p = "md" >
110116 < div className = "flex items-center justify-between" >
111- < Link to = "/" className = "flex items-center gap-2" >
112- < img src = "/logo.svg" alt = "OrangeCloud logo" className = "h-10 w-10" />
113- < div className = "flex flex-col overflow-hidden" >
114- < span className = "font-medium text-gray-700 text-lg dark:text-white" > OrangeCloud</ span >
115- </ div >
116- </ Link >
117+ < div className = "flex items-center gap-2" >
118+ < Burger opened = { mobileOpened } onClick = { toggleMobile } hiddenFrom = "md" size = "sm" />
119+ < Link to = "/" className = "flex items-center gap-2" >
120+ < img src = "/logo.svg" alt = "OrangeCloud logo" className = "h-10 w-10" />
121+ < div className = "flex flex-col overflow-hidden" >
122+ < span className = "font-medium text-gray-700 text-lg dark:text-white" >
123+ OrangeCloud
124+ </ span >
125+ </ div >
126+ </ Link >
127+ </ div >
117128 < div >
118129 < ThemeToggle />
119130 </ div >
@@ -139,7 +150,7 @@ const ProtectedLayout = ({ children }: ProtectedLayoutProps) => {
139150 icon : < IconSolarHome className = "text-base" /> ,
140151 iconActive : < IconSolarHomeBold className = "text-base" /> ,
141152 } }
142- // onNavigate={close }
153+ onNavigate = { toggleMobile }
143154 className = "mt-4"
144155 />
145156 </ AppShell . Section >
0 commit comments