@@ -12,13 +12,7 @@ import {
1212 CollapsibleContent ,
1313 CollapsibleTrigger ,
1414} from "@/components/ui/collapsible"
15- import {
16- SheetContent ,
17- SheetFooter ,
18- SheetHeader ,
19- SheetTrigger ,
20- } from "@/components/ui/sheet"
21- import { SheetCloseOnNavigate } from "@/components/ui/sheet-close-on-navigate"
15+ import { SheetFooter , SheetHeader } from "@/components/ui/sheet"
2216
2317import { cn } from "@/lib/utils/cn"
2418import { isLangRightToLeft } from "@/lib/utils/translations"
@@ -28,8 +22,8 @@ import { MOBILE_LANGUAGE_BUTTON_NAME, SECTION_LABELS } from "@/lib/constants"
2822
2923import FooterButton from "./FooterButton"
3024import FooterItemText from "./FooterItemText"
31- import HamburgerButton from "./HamburgerButton"
3225import MenuHeader from "./MenuHeader"
26+ import MobileMenuClient from "./MobileMenuClient"
3327import ThemeToggleFooterButton from "./ThemeToggleFooterButton"
3428
3529import { getLanguagesDisplayInfo , getNavigation } from "@/lib/nav/links"
@@ -49,73 +43,59 @@ export default async function MobileMenu({
4943 const dir = isRtl ? "rtl" : "ltr"
5044
5145 return (
52- < SheetCloseOnNavigate >
53- < SheetTrigger className = { className } asChild >
54- < HamburgerButton
55- className = { cn ( "-me-2" , className ) }
56- isMenuOpen = { false }
57- { ...props }
58- />
59- </ SheetTrigger >
60- < SheetContent
61- side = { side }
62- hideOverlay
63- className = "flex flex-col"
64- aria-describedby = ""
46+ < MobileMenuClient className = { className } side = { side } { ...props } >
47+ < SheetHeader >
48+ < MenuHeader />
49+ </ SheetHeader >
50+
51+ < TabsPrimitive . Root
52+ dir = { dir }
53+ defaultValue = "navigation"
54+ className = "flex min-h-0 flex-1 flex-col"
6555 >
66- < SheetHeader >
67- < MenuHeader />
68- </ SheetHeader >
69-
70- < TabsPrimitive . Root
71- dir = { dir }
72- defaultValue = "navigation"
73- className = "flex min-h-0 flex-1 flex-col"
56+ < TabsPrimitive . Content
57+ value = "navigation"
58+ className = "mt-0 hidden min-h-0 flex-1 flex-col border-none p-0 data-[state=active]:flex"
7459 >
75- < TabsPrimitive . Content
76- value = "navigation"
77- className = "mt-0 hidden min-h-0 flex-1 flex-col border-none p-0 data-[state=active]:flex"
78- >
79- < NavigationContent className = "flex-1 overflow-y-auto" />
80- </ TabsPrimitive . Content >
81- < TabsPrimitive . Content
82- value = "languages"
83- className = "mt-0 hidden min-h-0 flex-1 flex-col border-none p-0 data-[state=active]:flex"
84- >
85- < LanguageContent className = "flex min-h-0 flex-1 flex-col" />
86- </ TabsPrimitive . Content >
87-
88- < SheetFooter className = "h-[108px] shrink-0 justify-center border-t border-body-light px-4 py-0" >
89- < TabsPrimitive . List className = "grid h-auto w-full grid-cols-3" >
90- < div className = "flex flex-col items-center gap-1 py-2" >
91- < TabsPrimitive . Trigger value = "languages" asChild >
92- < FooterButton
93- icon = { Languages }
94- name = { MOBILE_LANGUAGE_BUTTON_NAME }
95- data-testid = "mobile-menu-language-picker"
96- >
97- < FooterItemText > { t ( "languages" ) } </ FooterItemText >
98- </ FooterButton >
99- </ TabsPrimitive . Trigger >
100- </ div >
101- < div className = "flex flex-col items-center gap-1 py-2" >
102- < ThemeToggleFooterButton />
103- </ div >
104- < div className = "flex flex-col items-center gap-1 py-2" >
105- < TabsPrimitive . Trigger value = "navigation" asChild >
106- < FooterButton
107- icon = { Menu }
108- data-testid = "mobile-menu-navigation-picker"
109- >
110- < FooterItemText > { t ( "menu" ) } </ FooterItemText >
111- </ FooterButton >
112- </ TabsPrimitive . Trigger >
113- </ div >
114- </ TabsPrimitive . List >
115- </ SheetFooter >
116- </ TabsPrimitive . Root >
117- </ SheetContent >
118- </ SheetCloseOnNavigate >
60+ < NavigationContent className = "flex-1 overflow-y-auto" />
61+ </ TabsPrimitive . Content >
62+ < TabsPrimitive . Content
63+ value = "languages"
64+ className = "mt-0 hidden min-h-0 flex-1 flex-col border-none p-0 data-[state=active]:flex"
65+ >
66+ < LanguageContent className = "flex min-h-0 flex-1 flex-col" />
67+ </ TabsPrimitive . Content >
68+
69+ < SheetFooter className = "h-[108px] shrink-0 justify-center border-t border-body-light px-4 py-0" >
70+ < TabsPrimitive . List className = "grid h-auto w-full grid-cols-3" >
71+ < div className = "flex flex-col items-center gap-1 py-2" >
72+ < TabsPrimitive . Trigger value = "languages" asChild >
73+ < FooterButton
74+ icon = { Languages }
75+ name = { MOBILE_LANGUAGE_BUTTON_NAME }
76+ data-testid = "mobile-menu-language-picker"
77+ >
78+ < FooterItemText > { t ( "languages" ) } </ FooterItemText >
79+ </ FooterButton >
80+ </ TabsPrimitive . Trigger >
81+ </ div >
82+ < div className = "flex flex-col items-center gap-1 py-2" >
83+ < ThemeToggleFooterButton />
84+ </ div >
85+ < div className = "flex flex-col items-center gap-1 py-2" >
86+ < TabsPrimitive . Trigger value = "navigation" asChild >
87+ < FooterButton
88+ icon = { Menu }
89+ data-testid = "mobile-menu-navigation-picker"
90+ >
91+ < FooterItemText > { t ( "menu" ) } </ FooterItemText >
92+ </ FooterButton >
93+ </ TabsPrimitive . Trigger >
94+ </ div >
95+ </ TabsPrimitive . List >
96+ </ SheetFooter >
97+ </ TabsPrimitive . Root >
98+ </ MobileMenuClient >
11999 )
120100}
121101
0 commit comments