import React, { type ElementType } from 'react'; import { classNames } from '../../utils'; import styles from './NavigationItem.module.css'; type ElementProps = T extends ElementType ? Props extends object ? Props : never : never; export type NavigationItemProps = { /** * The type of component (NavLink, a, div, etc.) */ component?: ElementType; /** * The label of the navigation item */ text: string; /** * Left addon of the navigation item */ leftAddon?: React.ReactNode; /** * Right addon of the navigation item */ rightAddon?: React.ReactNode; /** * If the navigation item should be displayed as active * @default false */ isActive?: boolean; /** * className for the element */ className?: string; } & Partial>; export const NavigationItem = ({ component, text, leftAddon, rightAddon, isActive, className, ...rest }: NavigationItemProps) => { const Component = component || 'div'; return ( {leftAddon ? leftAddon : null} {text} {rightAddon ? rightAddon : null} ); };