Skip to content

Commit 612ed08

Browse files
authored
perf: uninstall classnames, install clsx (#402)
1 parent b6f4f5b commit 612ed08

File tree

4 files changed

+15
-16
lines changed

4 files changed

+15
-16
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,14 @@
4848
"@babel/runtime": "^7.10.1",
4949
"@rc-component/motion": "^1.1.4",
5050
"@rc-component/util": "^1.3.0",
51-
"classnames": "2.x"
51+
"clsx": "^2.1.1"
5252
},
5353
"devDependencies": {
5454
"@rc-component/father-plugin": "^2.0.1",
5555
"@rc-component/np": "^1.0.4",
5656
"@testing-library/jest-dom": "^6.1.4",
5757
"@testing-library/react": "^16.3.0",
5858
"@testing-library/user-event": "^14.5.2",
59-
"@types/classnames": "^2.2.9",
6059
"@types/jest": "^29.4.0",
6160
"@types/node": "^24.2.0",
6261
"@types/react": "^19.1.4",

src/Collapse.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import classNames from 'classnames';
1+
import { clsx } from 'clsx';
22
import { useControlledState, useEvent } from '@rc-component/util';
33
import warning from '@rc-component/util/lib/warning';
44
import React from 'react';
@@ -36,12 +36,13 @@ const Collapse = React.forwardRef<HTMLDivElement, CollapseProps>((props, ref) =>
3636
styles,
3737
} = props;
3838

39-
const collapseClassName = classNames(prefixCls, className);
39+
const collapseClassName = clsx(prefixCls, className);
4040

4141
const [internalActiveKey, setActiveKey] = useControlledState<React.Key[] | React.Key>(
4242
defaultActiveKey,
4343
rawActiveKey,
4444
);
45+
4546
const activeKey = getActiveKeysArray(internalActiveKey);
4647

4748
const triggerActiveKey = useEvent((next) => {

src/Panel.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import classNames from 'classnames';
1+
import { clsx } from 'clsx';
22
import CSSMotion from '@rc-component/motion';
33
import KeyCode from '@rc-component/util/lib/KeyCode';
44
import React from 'react';
@@ -52,15 +52,15 @@ const CollapsePanel = React.forwardRef<HTMLDivElement, CollapsePanelProps>((prop
5252
typeof expandIcon === 'function' ? expandIcon(props) : <i className="arrow" />;
5353
const iconNode = iconNodeInner && (
5454
<div
55-
className={classNames(`${prefixCls}-expand-icon`, customizeClassNames?.icon)}
55+
className={clsx(`${prefixCls}-expand-icon`, customizeClassNames?.icon)}
5656
style={styles?.icon}
5757
{...(['header', 'icon'].includes(collapsible) ? collapsibleProps : {})}
5858
>
5959
{iconNodeInner}
6060
</div>
6161
);
6262

63-
const collapsePanelClassNames = classNames(
63+
const collapsePanelClassNames = clsx(
6464
`${prefixCls}-item`,
6565
{
6666
[`${prefixCls}-item-active`]: isActive,
@@ -69,7 +69,7 @@ const CollapsePanel = React.forwardRef<HTMLDivElement, CollapsePanelProps>((prop
6969
className,
7070
);
7171

72-
const headerClassName = classNames(
72+
const headerClassName = clsx(
7373
headerClass,
7474
`${prefixCls}-header`,
7575
{
@@ -91,7 +91,7 @@ const CollapsePanel = React.forwardRef<HTMLDivElement, CollapsePanelProps>((prop
9191
<div {...headerProps}>
9292
{showArrow && iconNode}
9393
<span
94-
className={classNames(`${prefixCls}-title`, customizeClassNames?.title)}
94+
className={clsx(`${prefixCls}-title`, customizeClassNames?.title)}
9595
style={styles?.title}
9696
{...(collapsible === 'header' ? collapsibleProps : {})}
9797
>

src/PanelContent.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import classnames from 'classnames';
1+
import { clsx } from 'clsx';
22
import React from 'react';
33
import type { CollapsePanelProps } from './interface';
44

@@ -33,7 +33,7 @@ const PanelContent = React.forwardRef<
3333
return (
3434
<div
3535
ref={ref}
36-
className={classnames(
36+
className={clsx(
3737
`${prefixCls}-panel`,
3838
{
3939
[`${prefixCls}-panel-active`]: isActive,
@@ -44,16 +44,15 @@ const PanelContent = React.forwardRef<
4444
style={style}
4545
role={role}
4646
>
47-
<div
48-
className={classnames(`${prefixCls}-body`, customizeClassNames?.body)}
49-
style={styles?.body}
50-
>
47+
<div className={clsx(`${prefixCls}-body`, customizeClassNames?.body)} style={styles?.body}>
5148
{children}
5249
</div>
5350
</div>
5451
);
5552
});
5653

57-
PanelContent.displayName = 'PanelContent';
54+
if (process.env.NODE_ENV !== 'production') {
55+
PanelContent.displayName = 'PanelContent';
56+
}
5857

5958
export default PanelContent;

0 commit comments

Comments
 (0)