11import * as React from 'react' ;
2- import classNames from 'classnames' ;
32import { css } from '@patternfly/react-styles' ;
43import { DropdownContext } from './dropdownConstants' ;
54import { KEYHANDLER_DIRECTION } from '../../helpers/constants' ;
@@ -16,7 +15,7 @@ export interface InternalDropdownItemProps extends React.HTMLProps<HTMLAnchorEle
1615 /** Indicates which component will be used as dropdown item */
1716 component ?: React . ReactNode | string ;
1817 /** Variant of the item. The 'icon' variant should use DropdownItemIcon to wrap contained icons or images. */
19- variant ?: 'item' | 'icon' | 'routerLink' ;
18+ variant ?: 'item' | 'icon' ;
2019 /** Role for the item */
2120 role ?: string ;
2221 /** Render dropdown item as disabled option */
@@ -46,6 +45,8 @@ export interface InternalDropdownItemProps extends React.HTMLProps<HTMLAnchorEle
4645 customChild ?: React . ReactNode ;
4746 /** Flag indicating if hitting enter on an item also triggers an arrow down key press */
4847 enterTriggersArrowDown ?: boolean ;
48+ /** Flag indicating if the item is a router link */
49+ isRouterLink ?: boolean ;
4950}
5051
5152export class InternalDropdownItem extends React . Component < InternalDropdownItemProps > {
@@ -135,7 +136,7 @@ export class InternalDropdownItem extends React.Component<InternalDropdownItemPr
135136 ) {
136137 return React . Children . map ( children as React . ReactElement < any > , child =>
137138 React . cloneElement ( child , {
138- className : classNames ( child . props . className , itemClass ) ,
139+ className : css ( child . props . className , itemClass ) ,
139140 ref,
140141 id,
141142 ...additionalProps
@@ -165,13 +166,14 @@ export class InternalDropdownItem extends React.Component<InternalDropdownItemPr
165166 additionalChild,
166167 customChild,
167168 enterTriggersArrowDown,
169+ isRouterLink,
168170 ...additionalProps
169171 } = this . props ;
170172 /* eslint-enable @typescript-eslint/no-unused-vars */
171173 const Component = component as any ;
172174 let isComponentReactElement = false ;
173175 let classes : string ;
174- if ( Component === 'a' || variant === 'routerLink' ) {
176+ if ( Component === 'a' || isRouterLink ) {
175177 additionalProps [ 'aria-disabled' ] = isDisabled ;
176178 additionalProps . tabIndex = isDisabled ? - 1 : additionalProps . tabIndex ;
177179 } else if ( Component === 'button' ) {
@@ -225,7 +227,7 @@ export class InternalDropdownItem extends React.Component<InternalDropdownItemPr
225227 ...additionalProps ,
226228 className : css ( classes , itemClass , variant === 'icon' && styles . modifiers . icon )
227229 } )
228- ) : variant === 'routerLink' ? (
230+ ) : isRouterLink ? (
229231 this . extendChildClass ( children , itemClass , this . ref , id , { ...additionalProps } )
230232 ) : (
231233 < Component
0 commit comments