import React, { forwardRef } from "react"; import cn from "classnames"; import ListGroupItem, { IListGroupItemProps } from "../list/list-group-item"; import { AsComponent, AsPropsWithChildren } from "../utils/asComponent"; type itemVariants = | "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "dark" | "light"; export interface ICloudBeesNavigationItemProps extends AsPropsWithChildren, Omit { isActive?: boolean; onClick?: (event: React.SyntheticEvent) => void; href?: string; variant?: itemVariants; title?: React.ReactNode | React.ReactNode[]; subText?: React.ReactNode | React.ReactNode[]; icon?: React.ReactNode | React.ReactNode[]; badge?: React.ReactNode | React.ReactNode[]; } export type CloudBeesNavigationItem = AsComponent<"li", ICloudBeesNavigationItemProps>; const CloudBeesNavigationItem: CloudBeesNavigationItem = forwardRef( ( { className, isActive, onClick, variant, subText, title, icon, badge, href, as: Component = "li", ...props }, ref ) => { const testId = props["data-testid"] || "honeyui-list-group-item"; return ( {(title || icon || badge) && (
{title && title} {icon && icon} {badge && badge}
)} {subText && subText}
); } ); CloudBeesNavigationItem.displayName = "Cloudbees Navigation Item"; export default CloudBeesNavigationItem;