We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 45d53c2 commit 4cb9c3fCopy full SHA for 4cb9c3f
package.json
@@ -47,7 +47,7 @@
47
"@rc-component/motion": "^1.1.4",
48
"@rc-component/trigger": "^3.0.0",
49
"@rc-component/util": "^1.3.0",
50
- "classnames": "2.x",
+ "clsx": "^2.1.1",
51
"rc-overflow": "^1.3.1"
52
},
53
"devDependencies": {
src/Divider.tsx
@@ -1,5 +1,5 @@
1
import * as React from 'react';
2
-import classNames from 'classnames';
+import { clsx } from 'clsx';
3
import { MenuContext } from './context/MenuContext';
4
import { useMeasure } from './context/PathContext';
5
import type { MenuDividerType } from './interface';
@@ -15,10 +15,6 @@ export default function Divider({ className, style }: DividerProps) {
15
}
16
17
return (
18
- <li
19
- role="separator"
20
- className={classNames(`${prefixCls}-item-divider`, className)}
21
- style={style}
22
- />
+ <li role="separator" className={clsx(`${prefixCls}-item-divider`, className)} style={style} />
23
);
24
src/Menu.tsx
@@ -1,4 +1,4 @@
import type { CSSMotionProps } from '@rc-component/motion';
import Overflow from 'rc-overflow';
import useControlledState from '@rc-component/util/lib/hooks/useControlledState';
@@ -563,7 +563,7 @@ const Menu = React.forwardRef<MenuRef, MenuProps>((props, ref) => {
563
prefixCls={`${prefixCls}-overflow`}
564
component="ul"
565
itemComponent={MenuItem}
566
- className={classNames(
+ className={clsx(
567
prefixCls,
568
`${prefixCls}-root`,
569
`${prefixCls}-${internalMode}`,
src/MenuItem.tsx
import KeyCode from '@rc-component/util/lib/KeyCode';
import omit from '@rc-component/util/lib/omit';
@@ -214,7 +214,7 @@ const InternalMenuItem = React.forwardRef((props: MenuItemProps, ref: React.Ref<
214
...directionStyle,
215
...style,
216
}}
217
218
itemCls,
219
{
220
[`${itemCls}-active`]: active,
src/MenuItemGroup.tsx
@@ -30,19 +30,19 @@ const InternalMenuItemGroup = React.forwardRef<HTMLLIElement, MenuItemGroupProps
30
role="presentation"
31
{...restProps}
32
onClick={e => e.stopPropagation()}
33
- className={classNames(groupPrefixCls, className)}
+ className={clsx(groupPrefixCls, className)}
34
>
35
<div
36
37
- className={classNames(`${groupPrefixCls}-title`, menuClassNames?.listTitle)}
+ className={clsx(`${groupPrefixCls}-title`, menuClassNames?.listTitle)}
38
style={styles?.listTitle}
39
title={typeof title === 'string' ? title : undefined}
40
41
{title}
42
</div>
43
<ul
44
role="group"
45
- className={classNames(`${groupPrefixCls}-list`, menuClassNames?.list)}
+ className={clsx(`${groupPrefixCls}-list`, menuClassNames?.list)}
46
style={styles?.list}
{children}
src/SubMenu/PopupTrigger.tsx
@@ -1,6 +1,6 @@
import Trigger from '@rc-component/trigger';
import raf from '@rc-component/util/lib/raf';
6
import { MenuContext } from '../context/MenuContext';
@@ -96,11 +96,9 @@ export default function PopupTrigger({
96
97
<Trigger
98
prefixCls={prefixCls}
99
- popupClassName={classNames(
+ popupClassName={clsx(
100
`${prefixCls}-popup`,
101
- {
102
- [`${prefixCls}-rtl`]: rtl,
103
- },
+ { [`${prefixCls}-rtl`]: rtl },
104
popupClassName,
105
rootClassName,
106
)}
src/SubMenu/SubMenuList.tsx
@@ -1,9 +1,8 @@
-export interface SubMenuListProps
- extends React.HTMLAttributes<HTMLUListElement> {
+export interface SubMenuListProps extends React.HTMLAttributes<HTMLUListElement> {
7
children?: React.ReactNode;
8
9
@@ -15,7 +14,7 @@ const InternalSubMenuList = (
14
rtl && `${prefixCls}-rtl`,
`${prefixCls}-sub`,
@@ -33,6 +32,9 @@ const InternalSubMenuList = (
};
const SubMenuList = React.forwardRef(InternalSubMenuList);
-SubMenuList.displayName = 'SubMenuList';
+
+if (process.env.NODE_ENV !== 'production') {
+ SubMenuList.displayName = 'SubMenuList';
+}
export default SubMenuList;
src/SubMenu/index.tsx
import warning from '@rc-component/util/lib/warning';
import SubMenuList from './SubMenuList';
@@ -339,7 +339,7 @@ const InternalSubMenu = React.forwardRef<HTMLLIElement, SubMenuProps>((props, re
339
340
component="li"
341
style={style}
342
- className={classNames(subMenuPrefixCls, `${subMenuPrefixCls}-${mode}`, className, {
+ className={clsx(subMenuPrefixCls, `${subMenuPrefixCls}-${mode}`, className, {
343
[`${subMenuPrefixCls}-open`]: open,
344
[`${subMenuPrefixCls}-active`]: mergedActive,
345
[`${subMenuPrefixCls}-selected`]: childrenSelected,
tests/Private.spec.tsx
/* eslint-disable no-undef */
import { render } from '@testing-library/react';
-import classnames from 'classnames';
import React from 'react';
import Menu, { MenuItem, SubMenu } from '../src';
@@ -9,9 +9,7 @@ describe('Private Props', () => {
const { container } = render(
10
<Menu
11
_internalRenderMenuItem={node =>
12
- React.cloneElement(node, {
13
- className: classnames(node.props.className, 'inject-cls'),
- })
+ React.cloneElement(node, { className: clsx(node.props.className, 'inject-cls') })
<MenuItem key="1">1</MenuItem>
@@ -27,9 +25,7 @@ describe('Private Props', () => {
27
25
mode="inline"
28
26
openKeys={['1']}
29
_internalRenderSubMenuItem={node =>
<SubMenu key="1" title="1">
0 commit comments