import { Doc, Help, MenuMore } from '@gympass/yoga-icons';
import { media } from '@gympass/yoga-helpers';
import { theme, Icon, Container, NavigationMenu, Avatar, Box } from '@gympass/yoga';
import { flex } from '@gympass/yoga-system';
const Container = styled(Box)`
display: flex;
width: 400px;
height: 450px;
border: 1px solid ${theme.colors.light};
${media.max('lg')`flex-direction: column;`}
`;
const MainPage = styled.main`
display: flex;
justify-content: center;
align-items: center;
height: 100%;
padding: 10px;
`;
const itemMainGroup = [
{
expanded: true,
icon: Doc,
label: 'Subscription',
tag: 'new',
subitems: [{ label: 'Details' }],
},
{
active: true,
icon: Doc,
label: 'Billing',
},
];
const itemGroups = [
[...itemMainGroup],
[
{
icon: Help,
label: 'Help',
},
],
];
const IconComponent = ({ icon }) => <Icon as={icon} fill="deep" />;
render(() => {
const [isOpenOnMobile, setIsOpenOnMobile] = useState(false);
const renderWrapper = ({ children }) => (
<a href="https://www.gympass.com" onClick={() => setIsOpenOnMobile(false)}>
{children}
</a>
);
const bottomItems = [
...itemMainGroup.slice(0, 2).map(({ active, icon, label }) => ({
active,
icon,
label,
wrapper: renderWrapper,
})),
{
icon: MenuMore,
label: 'More',
wrapper: ({ children }) => (
<div onClick={() => setIsOpenOnMobile(!isOpenOnMobile)}>{children}</div>
),
},
];
return (
<Container>
{}
{}
{}
<NavigationMenu openOnMobile={false}>
<NavigationMenu.Header>
<NavigationMenu.Menu
avatar={<Avatar.Circle />}
title="Company"
subtitle="Reseller"
/>
</NavigationMenu.Header>
<NavigationMenu.Items>
{itemGroups.map((group, index) => (
<NavigationMenu.ItemsGroup key={index}>
{group.map(item => (
<NavigationMenu.Item
key={item.label}
active={item.active}
expanded={item.expanded}
icon={<IconComponent icon={item.icon} />}
label={item.label}
wrapper={renderWrapper}
tag={item.tag}
>
{item.subitems &&
item.subitems.map(({ label }) => (
<NavigationMenu.Subitem
key={label}
label={label}
wrapper={renderWrapper}
/>
))}
</NavigationMenu.Item>
))}
</NavigationMenu.ItemsGroup>
))}
</NavigationMenu.Items>
<NavigationMenu.Footer>
<NavigationMenu.Switcher
avatar={<Avatar.Circle />}
title="User"
subtitle="Admin, Supervisor"
/>
</NavigationMenu.Footer>
</NavigationMenu>
<MainPage>Main page</MainPage>
<NavigationMenu.BottomItems>
{bottomItems.map(({ active, icon, label, wrapper }) => (
<NavigationMenu.BottomItem
key={label}
active={active}
icon={icon}
label={label}
wrapper={wrapper}
/>
))}
</NavigationMenu.BottomItems>
</Container>
);
});