From 7d5d4b87ff3c6bede6d48954c2871d16711638a0 Mon Sep 17 00:00:00 2001 From: melloware Date: Fri, 27 Sep 2024 09:14:29 -0400 Subject: [PATCH] Fix #7259: SplitButton menu passthrough --- components/lib/splitbutton/SplitButton.js | 5 ++++- components/lib/splitbutton/SplitButtonBase.js | 2 +- components/lib/tieredmenu/TieredMenu.js | 6 ++++-- components/lib/tieredmenu/TieredMenuBase.js | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/components/lib/splitbutton/SplitButton.js b/components/lib/splitbutton/SplitButton.js index 965ab63e21..108141413a 100644 --- a/components/lib/splitbutton/SplitButton.js +++ b/components/lib/splitbutton/SplitButton.js @@ -202,11 +202,14 @@ export const SplitButton = React.memo( style={props.menuStyle} autoZIndex={props.autoZIndex} baseZIndex={props.baseZIndex} - className={props.menuClassName} + className={classNames(props.menuClassName, cx('menu'))} onClick={onPanelClick} onShow={onMenuShow} onHide={onMenuHide} pt={ptm('menu')} + __parentMetadata={{ + parent: metaData + }} /> {hasTooltip && } diff --git a/components/lib/splitbutton/SplitButtonBase.js b/components/lib/splitbutton/SplitButtonBase.js index 977349f698..6448ffaab7 100644 --- a/components/lib/splitbutton/SplitButtonBase.js +++ b/components/lib/splitbutton/SplitButtonBase.js @@ -16,7 +16,7 @@ const classes = { }), button: 'p-splitbutton-defaultbutton', menuButton: 'p-splitbutton-menubutton', - menu: ({ subProps: props }) => classNames('p-menu p-menu-overlay p-component', props.menuClassName), + menu: ({ props }) => classNames('p-menu p-menu-overlay p-component', props.menuClassName), menuList: 'p-menu-list p-reset', separator: 'p-menu-separator', menuIcon: 'p-menuitem-icon', diff --git a/components/lib/tieredmenu/TieredMenu.js b/components/lib/tieredmenu/TieredMenu.js index 9c65acad12..7aaae363bb 100644 --- a/components/lib/tieredmenu/TieredMenu.js +++ b/components/lib/tieredmenu/TieredMenu.js @@ -26,14 +26,16 @@ export const TieredMenu = React.memo( const [visibleItems, setVisibleItems] = React.useState([]); const [focusTrigger, setFocusTrigger] = React.useState(false); const [attributeSelectorState, setAttributeSelectorState] = React.useState(null); - const { ptm, cx, sx, isUnstyled } = TieredMenuBase.setMetaData({ + const metaData = { props, + ...props.__parentMetadata, state: { id: idState, visible: visibleState, attributeSelector: attributeSelectorState } - }); + }; + const { ptm, cx, sx, isUnstyled } = TieredMenuBase.setMetaData(metaData); useHandleStyle(TieredMenuBase.css.styles, isUnstyled, { name: 'tieredmenu' }); diff --git a/components/lib/tieredmenu/TieredMenuBase.js b/components/lib/tieredmenu/TieredMenuBase.js index 0966c3e009..cb6512c777 100644 --- a/components/lib/tieredmenu/TieredMenuBase.js +++ b/components/lib/tieredmenu/TieredMenuBase.js @@ -82,6 +82,7 @@ const styles = ` export const TieredMenuBase = ComponentBase.extend({ defaultProps: { __TYPE: 'TieredMenu', + __parentMetadata: null, id: null, model: null, popup: false,