import classNames from "classnames"; import { useRouter } from "next/router"; import React, { useEffect, useState } from "react"; import { IHeaderLinkProps } from "../HeaderLink"; import Typography, { ITypo, ITypoColor } from "../../Typography"; import classes from "./classes.module.scss"; import useHoverable from "@Front/Hooks/useHoverable"; import HeaderSubmenuLink from "./HeaderSubmenuLink"; import { IAppRule } from "@Front/Api/Entities/rule"; import Rules, { RulesMode } from "@Front/Components/Elements/Rules"; 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(false); const { handleMouseLeave, handleMouseEnter, isHovered } = useHoverable(100); 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}
{isHovered && (
{props.links.map((link) => ( ))}
)}
); }