@@ -9,6 +9,7 @@ import React, {
99 Children ,
1010 cloneElement ,
1111 forwardRef ,
12+ isValidElement ,
1213 RefObject ,
1314 useCallback ,
1415 useContext ,
@@ -18,6 +19,7 @@ import React, {
1819 type ElementType ,
1920 type KeyboardEvent ,
2021 type MouseEvent ,
22+ type ReactElement ,
2123 type ReactNode ,
2224 type Ref ,
2325} from 'react' ;
@@ -39,13 +41,10 @@ import { deprecate } from '../../prop-types/deprecate';
3941import { mergeRefs } from '../../tools/mergeRefs' ;
4042import { setupGetInstanceId } from '../../tools/setupGetInstanceId' ;
4143import { IconButton , IconButtonProps } from '../IconButton' ;
42- import OverflowMenuItem , {
43- OverflowMenuItemProps ,
44- } from '../OverflowMenuItem/OverflowMenuItem' ;
44+ import { OverflowMenuItemProps } from '../OverflowMenuItem/OverflowMenuItem' ;
4545import { useOutsideClick } from '../../internal/useOutsideClick' ;
4646import { deprecateValuesWithin } from '../../prop-types/deprecateValuesWithin' ;
4747import { mapPopoverAlign } from '../../tools/mapPopoverAlign' ;
48- import { isComponentElement } from '../../internal' ;
4948
5049const getInstanceId = setupGetInstanceId ( ) ;
5150
@@ -532,9 +531,10 @@ export const OverflowMenu = forwardRef<HTMLButtonElement, OverflowMenuProps>(
532531 ) ;
533532
534533 const childrenWithProps = Children . toArray ( children ) . map ( ( child , index ) => {
535- if ( isComponentElement ( child , OverflowMenuItem ) ) {
536- return cloneElement ( child , {
537- closeMenu : child . props . closeMenu || closeMenuAndFocus ,
534+ if ( isValidElement ( child ) ) {
535+ const childElement = child as ReactElement < OverflowMenuItemProps > ;
536+ return cloneElement ( childElement , {
537+ closeMenu : childElement . props . closeMenu || closeMenuAndFocus ,
538538 handleOverflowMenuItemFocus,
539539 ref : ( el : HTMLElement ) => {
540540 menuItemRefs . current [ index ] = el ;
0 commit comments