Skip to content

Commit 6c56105

Browse files
authored
perf: uninstall classnames, install clsx (#1066)
* perf: uninstall classnames, install clsx * update demo
1 parent 8d68868 commit 6c56105

File tree

10 files changed

+22
-28
lines changed

10 files changed

+22
-28
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ es
2929
/coverage
3030
yarn.lock
3131
package-lock.json
32+
pnpm-lock.yaml
3233
.doc
3334
.storybook
3435

@@ -37,4 +38,4 @@ package-lock.json
3738
.umi-production
3839
.umi-test
3940
.env.local
40-
.dumi/
41+
.dumi/

docs/examples/components/TooltipSlider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const HandleTooltip: React.FC<HandleTooltipProps> = (props) => {
4343
<Tooltip
4444
placement="top"
4545
overlay={tipFormatter(value)}
46-
overlayInnerStyle={{ minHeight: 'auto' }}
46+
styles={{ container: { minHeight: 'auto' } }}
4747
ref={tooltipRef}
4848
visible={visible}
4949
{...restProps}

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
},
4444
"dependencies": {
4545
"@rc-component/util": "^1.3.0",
46-
"classnames": "^2.2.5"
46+
"clsx": "^2.1.1"
4747
},
4848
"devDependencies": {
4949
"@rc-component/father-plugin": "^2.1.3",
@@ -52,7 +52,6 @@
5252
"@rc-component/trigger": "^3.5.2",
5353
"@testing-library/jest-dom": "^6.1.5",
5454
"@testing-library/react": "^12.1.3",
55-
"@types/classnames": "^2.2.9",
5655
"@types/jest": "^29.5.1",
5756
"@types/node": "^22.5.0",
5857
"@types/react": "^18.2.42",

src/Handles/Handle.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import cls from 'classnames';
1+
import { clsx } from 'clsx';
22
import KeyCode from '@rc-component/util/lib/KeyCode';
33
import * as React from 'react';
44
import SliderContext from '../context';
@@ -184,7 +184,7 @@ const Handle = React.forwardRef<HTMLDivElement, HandleProps>((props, ref) => {
184184
let handleNode = (
185185
<div
186186
ref={ref}
187-
className={cls(
187+
className={clsx(
188188
handlePrefixCls,
189189
{
190190
[`${handlePrefixCls}-${valueIndex + 1}`]: valueIndex !== null && range,
@@ -193,11 +193,7 @@ const Handle = React.forwardRef<HTMLDivElement, HandleProps>((props, ref) => {
193193
},
194194
classNames.handle,
195195
)}
196-
style={{
197-
...positionStyle,
198-
...style,
199-
...styles.handle,
200-
}}
196+
style={{ ...positionStyle, ...style, ...styles.handle }}
201197
{...divProps}
202198
{...restProps}
203199
/>

src/Marks/Mark.tsx

Lines changed: 2 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 * as React from 'react';
33
import SliderContext from '../context';
44
import { getDirectionStyle } from '../util';
@@ -23,7 +23,7 @@ const Mark: React.FC<MarkProps> = (props) => {
2323

2424
return (
2525
<span
26-
className={classNames(textCls, {
26+
className={clsx(textCls, {
2727
[`${textCls}-active`]: included && includedStart <= value && value <= includedEnd,
2828
})}
2929
style={{ ...positionStyle, ...style }}

src/Slider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import useControlledState from '@rc-component/util/lib/hooks/useControlledState'
22
import useEvent from '@rc-component/util/lib/hooks/useEvent';
33
import isEqual from '@rc-component/util/lib/isEqual';
44
import warning from '@rc-component/util/lib/warning';
5-
import cls from 'classnames';
5+
import { clsx } from 'clsx';
66
import * as React from 'react';
77
import type { HandlesProps, HandlesRef } from './Handles';
88
import Handles from './Handles';
@@ -573,7 +573,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
573573
<SliderContext.Provider value={context}>
574574
<div
575575
ref={containerRef}
576-
className={cls(prefixCls, className, {
576+
className={clsx(prefixCls, className, {
577577
[`${prefixCls}-disabled`]: disabled,
578578
[`${prefixCls}-vertical`]: vertical,
579579
[`${prefixCls}-horizontal`]: !vertical,
@@ -584,7 +584,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
584584
id={id}
585585
>
586586
<div
587-
className={cls(`${prefixCls}-rail`, classNames?.rail)}
587+
className={clsx(`${prefixCls}-rail`, classNames?.rail)}
588588
style={{ ...railStyle, ...styles?.rail }}
589589
/>
590590

src/Steps/Dot.tsx

Lines changed: 2 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 * as React from 'react';
33
import SliderContext from '../context';
44
import { getDirectionStyle } from '../util';
@@ -33,7 +33,7 @@ const Dot: React.FC<DotProps> = (props) => {
3333

3434
return (
3535
<span
36-
className={classNames(dotClassName, { [`${dotClassName}-active`]: active })}
36+
className={clsx(dotClassName, { [`${dotClassName}-active`]: active })}
3737
style={mergedStyle}
3838
/>
3939
);

src/Tracks/Track.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import cls from 'classnames';
1+
import { clsx } from 'clsx';
22
import * as React from 'react';
33
import SliderContext from '../context';
44
import type { OnStartMove } from '../interface';
@@ -57,7 +57,7 @@ const Track: React.FC<TrackProps> = (props) => {
5757

5858
const className =
5959
replaceCls ||
60-
cls(
60+
clsx(
6161
trackPrefixCls,
6262
{
6363
[`${trackPrefixCls}-${index + 1}`]: index !== null && range,

src/Tracks/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import cls from 'classnames';
1+
import { clsx } from 'clsx';
22
import * as React from 'react';
33
import SliderContext from '../context';
44
import type { OnStartMove } from '../interface';
@@ -47,13 +47,13 @@ const Tracks: React.FC<TrackProps> = (props) => {
4747

4848
// ========================== Render ==========================
4949
const tracksNode =
50-
trackList?.length && (classNames.tracks || styles.tracks) ? (
50+
trackList?.length && (classNames.tracks || styles.tracks) ? (
5151
<Track
5252
index={null}
5353
prefixCls={prefixCls}
5454
start={trackList[0].start}
5555
end={trackList[trackList.length - 1].end}
56-
replaceCls={cls(classNames.tracks, `${prefixCls}-tracks`)}
56+
replaceCls={clsx(classNames.tracks, `${prefixCls}-tracks`)}
5757
style={styles.tracks}
5858
/>
5959
) : null;

tests/Slider.test.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import '@testing-library/jest-dom';
22
import { createEvent, fireEvent, render } from '@testing-library/react';
3-
import classNames from 'classnames';
3+
import { clsx } from 'clsx';
44
import keyCode from '@rc-component/util/lib/KeyCode';
55
import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
66
import React from 'react';
@@ -598,9 +598,7 @@ describe('Slider', () => {
598598
const { container } = render(
599599
<Slider
600600
handleRender={(node) =>
601-
React.cloneElement(node, {
602-
className: classNames(node.props.className, 'custom-handle'),
603-
})
601+
React.cloneElement(node, { className: clsx(node.props.className, 'custom-handle') })
604602
}
605603
/>,
606604
);
@@ -665,7 +663,7 @@ describe('Slider', () => {
665663

666664
it('tipFormatter should not crash with undefined value', () => {
667665
[undefined, null].forEach((value) => {
668-
render(<Slider value={value} tooltip={{ open: true }} styles={{ tracks: {} }}/>);
666+
render(<Slider value={value} tooltip={{ open: true }} styles={{ tracks: {} }} />);
669667
});
670668
});
671669
});

0 commit comments

Comments
 (0)