Skip to content

Commit fe01d35

Browse files
authored
Merge pull request #131 from niloofar-deriv/drawer
Niloofar/ Mobile SideMenu
2 parents f05a31b + 28e86ea commit fe01d35

File tree

7 files changed

+81
-378
lines changed

7 files changed

+81
-378
lines changed

package-lock.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"@babel/preset-env": "^7.24.5",
1818
"@deriv-com/api-hooks": "^1.1.3",
1919
"@deriv-com/translations": "^1.2.4",
20-
"@deriv-com/ui": "^1.28.2",
20+
"@deriv-com/ui": "^1.28.3",
2121
"@deriv-com/utils": "^0.0.25",
2222
"@deriv/deriv-api": "^1.0.15",
2323
"@deriv/quill-design": "^1.2.24",

src/components/AppHeader/MobileMenu/MenuContent.tsx

+46-51
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,66 @@
1-
import { useState } from 'react';
2-
import { MenuItem, Submenu, Text, useDevice } from '@deriv-com/ui';
1+
import clsx from 'clsx';
2+
import { MenuItem, Text, useDevice } from '@deriv-com/ui';
33
import { PlatformSwitcher } from '../PlatformSwitcher';
4-
import { MobileMenuConfig, TSubmenuSection } from './MobileMenuConfig';
5-
import { SubmenuContent } from './SubmenuContent';
4+
import { MobileMenuConfig } from './MobileMenuConfig';
65

76
export const MenuContent = () => {
8-
const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);
9-
const [renderSubmenuFor, setRenderSubmenuFor] = useState<TSubmenuSection>('accountSettings');
107
const { isMobile } = useDevice();
11-
12-
const data = MobileMenuConfig().menuConfig;
8+
const textSize = isMobile ? 'md' : 'sm';
139

1410
return (
1511
<div className='flex flex-col h-full'>
16-
{!isSubmenuOpen && (
17-
<div className='flex items-center justify-center h-28 border-b border-[#f2f3f4]'>
18-
<PlatformSwitcher />
19-
</div>
20-
)}
12+
<div className='flex items-center justify-center h-28 border-b border-[#f2f3f4]'>
13+
<PlatformSwitcher />
14+
</div>
2115

2216
<div className='relative h-full pt-4'>
23-
{data.map((item, index) => (
24-
<div className='pl-[4.8rem] pr-[1.6rem] border-b border-[#f2f3f4]' key={index}>
25-
{item.map(({ LeftComponent, RightComponent, as, href, label, onClick, submenu }) => {
26-
const textSize = isMobile ? 'md' : 'sm';
17+
{MobileMenuConfig().map((item, index) => {
18+
const removeBorderBottom = item.find(({ removeBorderBottom }) => removeBorderBottom);
2719

28-
if (as === 'a') {
20+
return (
21+
<div
22+
className={clsx('pl-[4.8rem] pr-[1.6rem]', {
23+
'border-b border-[#f2f3f4]': !removeBorderBottom,
24+
})}
25+
key={index}
26+
>
27+
{item.map(({ LeftComponent, RightComponent, as, href, label, onClick, target }) => {
28+
if (as === 'a') {
29+
return (
30+
<MenuItem
31+
as='a'
32+
className='h-[5.6rem]'
33+
disableHover
34+
href={href}
35+
key={label}
36+
leftComponent={
37+
<LeftComponent className='mr-[1.6rem]' height={16} width={16} />
38+
}
39+
target={target}
40+
>
41+
<Text size={textSize}>{label}</Text>
42+
</MenuItem>
43+
);
44+
}
2945
return (
3046
<MenuItem
31-
as='a'
32-
className='h-[5.6rem]'
47+
as='button'
48+
className='w-full h-[5.6rem]'
3349
disableHover
34-
href={href}
3550
key={label}
36-
leftComponent={<LeftComponent className='mr-[1.6rem]' height={16} width={16} />}
51+
leftComponent={<LeftComponent className='mr-[1.6rem]' iconSize='xs' />}
52+
onClick={onClick}
53+
rightComponent={RightComponent}
3754
>
38-
<Text size={textSize}>{label}</Text>
55+
<Text className='mr-auto' size={textSize}>
56+
{label}
57+
</Text>
3958
</MenuItem>
4059
);
41-
}
42-
return (
43-
<MenuItem
44-
as='button'
45-
className='w-full h-[5.6rem]'
46-
disableHover
47-
key={label}
48-
leftComponent={<LeftComponent className='mr-[1.6rem]' iconSize='xs' />}
49-
onClick={() => {
50-
if (submenu) {
51-
setRenderSubmenuFor(submenu);
52-
setIsSubmenuOpen(true);
53-
} else onClick?.();
54-
}}
55-
rightComponent={RightComponent}
56-
>
57-
<Text className='mr-auto' size={textSize}>
58-
{label}
59-
</Text>
60-
</MenuItem>
61-
);
62-
})}
63-
</div>
64-
))}
65-
66-
<Submenu className='overflow-y-auto z-10' isOpen={isSubmenuOpen}>
67-
<SubmenuContent onBackClick={() => setIsSubmenuOpen(false)} renderContentFor={renderSubmenuFor} />
68-
</Submenu>
60+
})}
61+
</div>
62+
);
63+
})}
6964
</div>
7065
</div>
7166
);

0 commit comments

Comments
 (0)