import { Flex, Box, Text } from "@mantine/core"; import { Link, useRouterState } from "@tanstack/react-router"; import styles from "./styles.module.css"; import { Icon } from "@phosphor-icons/react"; import { useMemo } from "react"; interface NavLinkProps { href: string; label: string; Icon: Icon; include?: string[]; exclude?: string[]; } export const NavLink = ({ href, label, Icon, include, exclude, }: NavLinkProps) => { const pathname = useRouterState({ select: (s) => s.location.pathname }); const isActive = useMemo( () => (!exclude?.some((e) => pathname.includes(e)) && (pathname === href || (pathname.includes(href) && href !== "/"))) || include?.includes(pathname), [pathname, href] ); return ( {label} ); };