@@ -15,7 +15,9 @@ export interface MenuItemProps {
1515}
1616
1717export const MenuItem : React . FC < MenuItemProps > = ( { item, onClick } ) => {
18- const [ isSubMenuOpen , setIsSubMenuOpen ] = useState ( false ) ;
18+ const [ isSubMenuOpen , setIsSubMenuOpen ] = useState (
19+ 'items' in item ? ! ! item . defaultOpenOnMobile : false ,
20+ ) ;
1921 const { t } = useTranslation ( ) ;
2022 const { pathname } = useLocation ( ) ;
2123
@@ -37,14 +39,6 @@ export const MenuItem: React.FC<MenuItemProps> = ({ item, onClick }) => {
3739
3840 return 'items' in item ? (
3941 < div >
40- { /* XL and up backdrop */ }
41- { isSubMenuOpen && (
42- < div
43- className = "fixed bottom-0 left-0 right-0 top-0 hidden z-50 xl:block"
44- onClick = { ( ) => setIsSubMenuOpen ( false ) }
45- />
46- ) }
47-
4842 { /* Mobile/tablet submenu */ }
4943 < div className = "xl:hidden" >
5044 < button
@@ -68,12 +62,7 @@ export const MenuItem: React.FC<MenuItemProps> = ({ item, onClick }) => {
6862 { ...item }
6963 items = { item . items . map ( i => ( {
7064 ...i ,
71- onClick : ( ) => {
72- // Close submenu
73- setIsSubMenuOpen ( false ) ;
74-
75- onClick ( ) ;
76- } ,
65+ onClick,
7766 } ) ) }
7867 />
7968 </ AccordionAnimatedContent >
@@ -82,7 +71,8 @@ export const MenuItem: React.FC<MenuItemProps> = ({ item, onClick }) => {
8271 { /* XL and up dropdown */ }
8372 < Dropdown
8473 className = "hidden xl:block"
85- menuClassName = "top-7 shadow-none border-0 bg-background-active"
74+ menuClassName = "mt-5 shadow-none border-0 bg-background-active"
75+ triggerOnHover
8676 optionsDom = { ( { setIsDropdownOpened } ) => {
8777 const items : SubMenuItemProps [ ] = item . items . map ( i => ( {
8878 ...i ,
@@ -97,19 +87,18 @@ export const MenuItem: React.FC<MenuItemProps> = ({ item, onClick }) => {
9787 return < SubMenuContent { ...item } items = { items } /> ;
9888 } }
9989 >
100- { ( { isDropdownOpened, handleToggleDropdown } ) => (
90+ { ( { isDropdownOpened } ) => (
10191 < button
10292 className = { cn (
10393 sharedContainerClassName ,
10494 'flex items-center justify-between cursor-pointer xl:gap-x-2' ,
10595 isDropdownOpened && 'xl:text-white xl:bg-dark-blue-active' ,
10696 ) }
10797 type = "button"
108- onClick = { handleToggleDropdown }
10998 >
11099 < span > { item . label } </ span >
111100
112- < Icon name = "chevronDown" className = { cn ( 'size-3' , isSubMenuOpen && 'rotate-180' ) } />
101+ < Icon name = "chevronDown" className = { cn ( 'size-3' , isDropdownOpened && 'rotate-180' ) } />
113102 </ button >
114103 ) }
115104 </ Dropdown >
0 commit comments