This is SideNav.tsx
import { translate } from '@/components/IntlGlobalProvider';
import AllOrdersIcon from '@/public/icons/all-orders-icon.svg';
import TripDashboardIcon from '@/public/icons/trip-dashboard.svg';
import type { MenuProps } from 'antd';
import { Menu } from 'antd';
import React from 'react';
import styled from 'styled-components';
const StyledMenu = styled(Menu)`
display: flex;
overflow: auto;
width: 256px;
max-height: calc(100vh - (48px));
// to give scroll in sideNav menu after hitting screen height; 48px is header's height
flex-direction: column;
gap: 22px;
font-weight: 700;
font-size: 14px;
`
const SideNav: React.FC<ISideNav> = ({ className: cName }: ISideNav) => {
const onClick: MenuProps['onClick'] = (e) => {
console.log('click ', e);
};
const items: MenuProps['items'] = [
getItem(
translate('trip_dashboard'),
'trip_dashboard',
<TripDashboardIcon />
),
getItem(translate('all_orders'), 'all_orders', <AllOrdersIcon />, [
getItem(translate('open_orders'), 'open_orders'),
getItem(translate('dispatched_orders'), 'dispatched_orders'),
getItem(translate('completed_orders'), 'completed_orders'),
];
return (
<StyledMenu
className={cName}
onClick={onClick}
style={{ width: 256 }}
mode="inline"
items={items}
subMenuOpenDelay={0.5}
subMenuCloseDelay={0.5}
// theme={'dark'}
/>
);
};
export default SideNav;