diff --git a/.changeset/twelve-singers-prove.md b/.changeset/twelve-singers-prove.md new file mode 100644 index 00000000000..383dcf912bf --- /dev/null +++ b/.changeset/twelve-singers-prove.md @@ -0,0 +1,6 @@ +--- +"@chakra-ui/menu": patch +--- + +Fixed bug where passing `null` as value of `icon` prop in `MenuOptionItem` still +rendered the icon. diff --git a/packages/menu/src/menu.tsx b/packages/menu/src/menu.tsx index 177f55d735b..35e695abd3f 100644 --- a/packages/menu/src/menu.tsx +++ b/packages/menu/src/menu.tsx @@ -322,11 +322,11 @@ const CheckIcon: React.FC> = (props) => ( export interface MenuItemOptionProps extends UseMenuOptionOptions, - Omit { + Omit { /** * @type React.ReactElement */ - icon?: React.ReactElement + icon?: React.ReactElement | null /** * @type SystemProps["mr"] */ @@ -344,13 +344,15 @@ export const MenuItemOption = forwardRef( {...optionProps} className={cx("chakra-menu__menuitem-option", rest.className)} > - - {icon || } - + {icon !== null && ( + + {icon || } + + )} {optionProps.children} ) diff --git a/packages/menu/stories/menu.stories.tsx b/packages/menu/stories/menu.stories.tsx index 5122a1c03b8..9d42a41b565 100644 --- a/packages/menu/stories/menu.stories.tsx +++ b/packages/menu/stories/menu.stories.tsx @@ -261,6 +261,28 @@ export const withMenuRadio = () => ( ) +export const withDisabledIconInMenuRadio = () => ( + + + Open menu + + + + + + Email + + + Phone + + + Country + + + + +) + export const WithInternalState = () => ( {({ isOpen }) => (