Skip to content

Commit 5dbcba1

Browse files
committed
fix: menu title logic
1 parent d54833b commit 5dbcba1

File tree

6 files changed

+10
-19
lines changed

6 files changed

+10
-19
lines changed

components/menu/MenuItem.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Item, itemProps } from '../vc-menu';
33
import { getOptionProps, getSlot } from '../_util/props-util';
44
import Tooltip, { TooltipProps } from '../tooltip';
55
import { SiderContextProps } from '../layout/Sider';
6-
6+
import { injectExtraPropsKey } from '../vc-menu/FunctionProvider';
77
export default defineComponent({
88
name: 'MenuItem',
99
inheritAttrs: false,
@@ -13,6 +13,7 @@ export default defineComponent({
1313
return {
1414
getInlineCollapsed: inject<() => boolean>('getInlineCollapsed', () => false),
1515
layoutSiderContext: inject<SiderContextProps>('layoutSiderContext', {}),
16+
injectExtraProps: inject(injectExtraPropsKey, () => ({})),
1617
};
1718
},
1819
methods: {
@@ -22,7 +23,7 @@ export default defineComponent({
2223
},
2324
render() {
2425
const props = getOptionProps(this);
25-
const { level, title, rootPrefixCls } = props;
26+
const { level, title, rootPrefixCls } = { ...props, ...this.injectExtraProps } as any;
2627
const { getInlineCollapsed, $attrs: attrs } = this;
2728
const inlineCollapsed = getInlineCollapsed();
2829
let tooltipTitle = title;

components/vc-menu/FunctionProvider.jsx

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
import PropTypes from '../_util/vue-types';
1+
// import PropTypes from '../_util/vue-types';
22
import { provide, reactive } from 'vue';
3-
3+
export const injectExtraPropsKey = Symbol();
44
const FunctionProvider = {
55
inheritAttrs: false,
6-
props: {
7-
injectExtraPropsKey: PropTypes.string,
8-
},
96
setup(props, { slots, attrs }) {
10-
if (props.injectExtraPropsKey) {
11-
provide(props.injectExtraPropsKey, reactive(attrs));
12-
}
7+
provide(injectExtraPropsKey, reactive(attrs));
138
return () => slots.default?.();
149
},
1510
};

components/vc-menu/MenuItem.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { connect } from '../_util/store';
66
import { noop, menuAllProps } from './util';
77
import { getComponent, getSlot, findDOMNode } from '../_util/props-util';
88
import { inject } from 'vue';
9-
const injectExtraPropsKey = 'ANT_MENU_PROVIDER_PROPS_KEY';
9+
import { injectExtraPropsKey } from './FunctionProvider';
1010
const props = {
1111
attribute: PropTypes.object,
1212
rootPrefixCls: PropTypes.string,

components/vc-menu/MenuItemGroup.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { getComponent, getSlot } from '../_util/props-util';
33
import { menuAllProps } from './util';
44
import { defineComponent, inject } from 'vue';
55
import classNames from '../_util/classNames';
6-
const injectExtraPropsKey = 'ANT_MENU_PROVIDER_PROPS_KEY';
6+
import { injectExtraPropsKey } from './FunctionProvider';
77
const MenuItemGroup = {
88
name: 'MenuItemGroup',
99
inheritAttrs: false,

components/vc-menu/SubMenu.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import { getComponent, filterEmpty, getSlot, splitAttrs, findDOMNode } from '../
1111
import { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';
1212
import { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey } from './util';
1313
import { getTransitionProps, Transition } from '../_util/transition';
14+
import { injectExtraPropsKey } from './FunctionProvider';
1415

1516
let guid = 0;
16-
const injectExtraPropsKey = 'ANT_MENU_PROVIDER_PROPS_KEY';
1717
const popupPlacementMap = {
1818
horizontal: 'bottomLeft',
1919
vertical: 'rightTop',

components/vc-menu/SubPopupMenu.jsx

+1-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import {
1414
getPropsData,
1515
} from '../_util/props-util';
1616
import FunctionProvider from './FunctionProvider';
17-
const injectExtraPropsKey = 'ANT_MENU_PROVIDER_PROPS_KEY';
1817
function allDisabled(arr) {
1918
if (!arr.length) {
2019
return true;
@@ -323,11 +322,7 @@ const SubPopupMenu = {
323322
if (props.mode === 'inline' || isMobileDevice()) {
324323
newChildProps.triggerSubMenuAction = 'click';
325324
}
326-
return (
327-
<FunctionProvider injectExtraPropsKey={injectExtraPropsKey} {...newChildProps}>
328-
{child}
329-
</FunctionProvider>
330-
);
325+
return <FunctionProvider {...newChildProps}>{child}</FunctionProvider>;
331326
},
332327

333328
renderMenuItem(c, i, subMenuKey) {

0 commit comments

Comments
 (0)