71 lines
2.5 KiB
TypeScript
71 lines
2.5 KiB
TypeScript
import { Logo, LogoFASIE } from '../../../assets/logos';
|
|
import {
|
|
Account,
|
|
Clipboard,
|
|
Cup,
|
|
Openbook,
|
|
Users,
|
|
} from '../../../assets/icons/menu';
|
|
import MenuItem from './MenuItem';
|
|
import { useAppSelector } from '../../../redux/hooks';
|
|
|
|
const Menu = () => {
|
|
const menuItems = [
|
|
{
|
|
text: 'Задачи',
|
|
href: '/home/missions',
|
|
icon: Clipboard,
|
|
page: 'missions',
|
|
},
|
|
{
|
|
text: 'Статьи',
|
|
href: '/home/articles',
|
|
icon: Openbook,
|
|
page: 'articles',
|
|
},
|
|
{ text: 'Группы', href: '/home/groups', icon: Users, page: 'groups' },
|
|
{
|
|
text: 'Контесты',
|
|
href: '/home/contests',
|
|
icon: Cup,
|
|
page: 'contests',
|
|
},
|
|
{
|
|
text: 'Аккаунт',
|
|
href: '/home/account',
|
|
icon: Account,
|
|
page: 'account',
|
|
},
|
|
];
|
|
const activePage = useAppSelector((state) => state.store.menu.activePage);
|
|
|
|
return (
|
|
<div className="w-[250px] h-full fixed top-0 items-center box-border p-[20px] pt-[35px]">
|
|
<img src={Logo} className="w-[173px]" />
|
|
<div className="">
|
|
{menuItems.map((v, i) => (
|
|
<MenuItem
|
|
key={i}
|
|
icon={v.icon}
|
|
text={v.text}
|
|
href={v.href}
|
|
active={v.page == activePage}
|
|
page={v.page}
|
|
/>
|
|
))}
|
|
</div>
|
|
|
|
<div className="h-[300px] w-full absolute left-0 bottom-[10px] p-[20px] flex flex-col justify-end gap-[20px]">
|
|
<img src={LogoFASIE} />
|
|
<div className="text-[12px] font-normal leading-[15px] text-liquid-light">
|
|
{
|
|
'Проект «LiquidCode» создан при поддержке Федерального государственного бюджетного учреждения «Фонд содействия развитию малых форм предприятий в научно-технической сфере» в рамках программы «Студенческий стартап» федерального проекта «Платформа университетского технологического предпринимательства»'
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default Menu;
|