import classNames from "classnames"; import { useRouter } from "next/router"; import React, { useEffect, useState } from "react"; import classes from "./classes.module.scss"; import { IAppRule } from "@Front/Api/Entities/rule"; import Rules, { RulesMode } from "@Front/Components/Elements/Rules"; import { IHeaderLinkProps } from "../../../HeaderLink"; import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; import HeaderSubmenuLink from "../../../HeaderSubmenu/HeaderSubmenuLink"; import useToggle from "@Front/Hooks/useToggle"; import { ChevronDownIcon, ChevronUpIcon } from "@heroicons/react/24/outline"; type IProps = { text: string | JSX.Element; links: (IHeaderLinkProps & { rules?: IAppRule[]; })[]; }; export default function HeaderSubmenu(props: IProps) { const router = useRouter(); const { pathname } = router; const [isActive, setIsActive] = useState(true); const { active: isSubmenuOpened, toggle } = useToggle(); useEffect(() => { setIsActive(false); if (props.links.some((link) => link.path === pathname)) setIsActive(true); if (props.links.some((link) => link.routesActive?.some((routeActive) => pathname.includes(routeActive)))) setIsActive(true); }, [isActive, pathname, props.links]); return ( link.rules ?? [])}>
{props.text} {isSubmenuOpened ? : }
{isSubmenuOpened && (
{props.links.map((link) => ( ))}
)}
); }