Back to Fluentui

Menu Migration

apps/public-docsite-v9/src/Concepts/Migration/FromV8/Components/Menu.mdx

4.40.2-hotfix29.3 KB
Original Source

import { Meta } from '@storybook/addon-docs/blocks';

<Meta title="Concepts/Migration/from v8/Components/Menu Migration" />

Menu Migration

v8

  • A menu can be displayed by passing menuProps to Button, or by showing/hiding a ContextualMenu. In both cases, the menu items are specified as an IContextualMenuItem array passed in props.
  • Different types of menu items are created by setting the IContextualMenuItem.itemType property.

v9

  • A menu can be displayed by creating a hierarchy of children under Menu.
  • There are children that act as containers and coordinate behavior including MenuTrigger, MenuPopover, MenuList, and MenuGroup.
  • There are individual components for different types of items including MenuItem, MenuDivider, MenuItemCheckbox, MenuItemRadio, MenuGroup, and MenuSplitGroup.

Types -> Component props

v8 menu typev9 props
IContextualMenuPropsMenuProps, MenuListProps (for submenus)
IContextualMenuItemProps, IContextualMenuItemMenuItemProps
IContextualMenuItem itemType=NormalMenuItemProps
IContextualMenuItem itemType=DividerMenuDividerProps
IContextualMenuItem itemType=HeaderMenuGroupHeaderProps
IContextualMenuItem itemType=SectionMenuGroupProps
IContextualMenuProps.hiddenMenuTrigger, MenuPopover
Button menuProps={'...'}MenuButton

IContextualMenuProps -> MenuProps

v8 IContextualMenuPropsv9 MenuProps (replacements)
alignTargetEdge
ariaLabel
beakWidth
bounds
className
componentRef
contextualMenuItemAs
coverTarget
delayUpdateFocusOnHover
directionalHintpositioning
directionalHintFixed
directionalHintForRTL
focusZoneAs
focusZoneProps
gapSpace
getMenuClassNames
hidden
id
labelElementId
isBeakVisible
isSubMenu
items
onDismiss
onItemClick
onRenderMenuList
onRenderSubMenu
onRestoreFocus
doNotLayer
onMenuOpened
onMenuDismissed
calloutProps
shouldFocusOnMount
shouldFocusOnContainer
shouldUpdateWhenHidden
styles
subMenuHoverDelay
target
theme
title
useTargetAsMinWidth
useTargetWidth

IContextualMenuItem -> MenuItemProps

v8 IContextualMenuItemv9 MenuItemProps+
ariaDescribedBy(removed)
ariaDescription(removed)
ariaLabelHTML aria-label
canCheck(use MenuItemRadio, MenuItemCheckbox)
checked(use MenuItemRadio, MenuItemCheckbox)
classNameclassName
componentRefref
customOnRenderListLength
data
disableddisabled
getItemClassNames
getSplitButtonVerticalDividerClassNames
href
iconPropsicon (slot)
inactive(removed)
itemProps(use makeStyles and className)
itemschildren
itemTypechildren (MenuDivider, MenuGroup, MenuGroupHeader, MenuSplitGroup)
key
keytipProps
name (deprecated)name & value (MenuItemCheckbox, MenuItemRadio)
onClickonClick
onMouseDownonMouseDown
onRenderchildren
onRenderContentchildren
onRenderIconicon (slot)
preferMenuTargetAsEventTarget
primaryDisabled
rel
role(removed - set by component)
secondaryTextsecondaryContent (slot)
sectionProps(MenuGroup, MenuGroupHeader)
splitchildren (MenuSplitGroup)
style(use makeStyles and className)
subMenuIconProps
subMenuPropschildren (Menu), hasSubmenu
target
textchildren
titletitle
[propertyName: string](removed)

IContextualMenuSection -> MenuGroupProps

v8 IContextualMenuSectionv9 MenuGroupProps, MenuGroupHeaderProps
items(use MenuGroup children)
title(use MenuGroupHeader children)
topDivider(removed)
bottomDivider(removed)