1- import {
2- Flex ,
3- type FlexProps ,
4- IconButton ,
5- useDisclosure ,
6- } from "@chakra-ui/react" ;
1+ import { Sheet , SheetContent , SheetTrigger } from "@/components/ui/sheet" ;
2+ import { Flex , IconButton } from "@chakra-ui/react" ;
73import { ChakraNextImage } from "components/Image" ;
84import { MenuIcon } from "lucide-react" ;
9- import { Drawer , Heading , TrackedLink , TrackedLinkButton } from "tw-components" ;
5+ import { useState } from "react" ;
6+ import { Heading , TrackedLink , TrackedLinkButton } from "tw-components" ;
107import {
118 DEVELOPER_RESOURCES ,
129 MOBILE_PRODUCTS_SECTIONS ,
1310 SOLUTIONS ,
1411} from "./data" ;
1512import type { SectionItemProps } from "./types" ;
1613
17- export const MobileMenu : React . FC < FlexProps > = ( props ) => {
18- const disclosure = useDisclosure ( ) ;
14+ export const MobileMenu : React . FC = ( ) => {
15+ const [ open , setOpen ] = useState ( false ) ;
1916
2017 return (
21- < Flex gap = { 2 } { ... props } alignItems = "center" >
18+ < Flex gap = { 2 } display = { { base : "inherit" , xl : "none" } } alignItems = "center" >
2219 < TrackedLinkButton
2320 bgColor = "white"
2421 _hover = { {
@@ -33,38 +30,33 @@ export const MobileMenu: React.FC<FlexProps> = (props) => {
3330 >
3431 Contact Us
3532 </ TrackedLinkButton >
36- < IconButton
37- aria-label = "Homepage Menu"
38- icon = { < MenuIcon className = "size-4" /> }
39- variant = "ghost"
40- onClick = { disclosure . onOpen }
41- />
42- < Drawer
43- drawerBodyProps = { { bg : "#111315" } }
44- isOpen = { disclosure . isOpen }
45- onClose = { disclosure . onClose }
46- customPlacement = "right"
47- closeOnOverlayClick = { true }
48- noTopBorderRadius = { true }
49- >
50- < Flex gap = { 6 } direction = "column" >
33+ < Sheet open = { open } onOpenChange = { setOpen } >
34+ < SheetTrigger asChild >
35+ < IconButton
36+ aria-label = "Homepage Menu"
37+ icon = { < MenuIcon className = "size-6" /> }
38+ variant = "ghost"
39+ />
40+ </ SheetTrigger >
41+
42+ < SheetContent className = "z-[1300] flex max-w-[320px] flex-col gap-6 overflow-y-auto bg-[#111315]" >
5143 < MobileNavSection
5244 title = "Products"
5345 links = { MOBILE_PRODUCTS_SECTIONS }
54- onItemClick = { disclosure . onClose }
46+ onItemClick = { ( ) => setOpen ( false ) }
5547 />
5648 < MobileNavSection
5749 title = "Solutions"
5850 links = { SOLUTIONS }
59- onItemClick = { disclosure . onClose }
51+ onItemClick = { ( ) => setOpen ( false ) }
6052 />
6153 < MobileNavSection
6254 title = "Developer"
6355 links = { DEVELOPER_RESOURCES }
64- onItemClick = { disclosure . onClose }
56+ onItemClick = { ( ) => setOpen ( false ) }
6557 />
66- </ Flex >
67- </ Drawer >
58+ </ SheetContent >
59+ </ Sheet >
6860 </ Flex >
6961 ) ;
7062} ;
@@ -87,7 +79,7 @@ const MobileNavSection: React.FC<MobileNavSectionProps> = ({
8779 </ Heading >
8880 < ul className = "ml-1.5 list-none gap-1.5" >
8981 { links . map ( ( link ) => (
90- < li className = "min-h-5" key = { link . label } >
82+ < li className = "min-h-5 py-2 " key = { link . label } >
9183 < Heading
9284 as = { TrackedLink }
9385 display = "flex"
0 commit comments