import { ActionListItem, Tooltip, useMediaQuery } from "@prismicio/editor-ui"; import Link from "next/link"; import { type FC, type MouseEventHandler, type ReactNode, type SVGProps, useCallback, } from "react"; type NavigationItemPropsBase = { title: string; active?: boolean; Icon: FC>; RightElement?: ReactNode; tooltip?: string; }; type NavigationLinkItemProps = NavigationItemPropsBase & { href: string; target?: "_blank"; // For telemetry (optional) onClick?: MouseEventHandler; }; type NavigationButtonItemProps = NavigationItemPropsBase & { href?: never; target?: never; onClick: MouseEventHandler; }; type NavigationItemProps = NavigationLinkItemProps | NavigationButtonItemProps; export function NavigationItem(props: NavigationItemProps) { const { title, href, target, active, Icon, RightElement, onClick, tooltip } = props; const isCollapsed = useMediaQuery({ max: "medium" }); const ItemIcon = useCallback(() => { return ; }, [Icon, isCollapsed]); const Content = ( {isCollapsed ? null : title} ); return ( {href !== undefined ? ( {Content} ) : ( )} ); }