import React, { DetailedHTMLProps, HTMLAttributes, ReactNode } from "react"; import { twMerge } from "tailwind-merge"; import Row from "../layout/Row"; import HeaderLink from "./HeaderLink"; import { ChevronDown } from "lucide-react"; import Dropdown from "./Dropdown"; import { TwuiHeaderLink } from "./HeaderNav"; import Card from "./Card"; import Stack from "../layout/Stack"; import Button from "../layout/Button"; /** * # Header Nav Main Link Component * @className twui-header-nav-link-component * @className twui-header-nav-link-icon * @className twui-header-nav-link-dropdown */ export default function HeaderNavLinkComponent({ link, dropdown, }: { link: TwuiHeaderLink; dropdown?: ReactNode; }) { const isDropdown = dropdown || link.dropdown || link.children?.[0]; const mainLinkComponent = ( {isDropdown && ( )} ); const [showMobileDropdown, setShowMobileDropdown] = React.useState(false); return (
{isDropdown ? ( {mainLinkComponent} {showMobileDropdown && ( {dropdown ? ( dropdown ) : link.children?.[0] ? ( {link.children.map( (_ch, _index) => { return ( ); } )} ) : link.dropdown ? ( link.dropdown ) : null} )} {dropdown ? ( dropdown ) : link.children?.[0] ? ( {link.children.map((_ch, _index) => { return ( ); })} ) : link.dropdown ? ( link.dropdown ) : null} ) : ( mainLinkComponent )}
); }