import { cn } from "@/utils/class-merge"; import { CalendarDaysIcon, ListBulletIcon, UserIcon } from "@heroicons/react/24/solid"; import { FunctionComponent, h } from "preact"; import { useLocation } from "preact-iso"; import { tv } from "tailwind-variants"; import classes from "./menu.module.scss"; interface MenuItemProps { title: string; link: string; icon: h.JSX.Element; } const MenuItem: FunctionComponent = ({ title, link, icon }: MenuItemProps) => { const { route, path } = useLocation(); const active = path === link; const menuItemClasses = tv({ base: classes.menu_item, variants: { activity: { active: "bg-gray-200", inactive: "bg-white", }, }, defaultVariants: { activity: "inactive", }, }); return (
route(link, true)}> {icon}
); }; const Avatar: FunctionComponent = () => { const { route, path } = useLocation(); //TODO: Move styles to scss module return ( ); }; interface MenuItems { title: string; link: string; icon: h.JSX.Element; } const Menu: FunctionComponent = () => { //TODO: Move links to enum const menu_items: MenuItems[] = [ { title: "Задачи", link: "/profile/tasks", icon: , }, { title: "Календарь", link: "/profile/calendar", icon: , }, { title: "Профиль", link: "/profile/settings", icon: , }, ]; return (
{menu_items.map(({ title, link, icon }) => ( ))}
); }; export default Menu;