Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .dumirc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import path from 'path';

export default defineConfig({
alias: {
'rc-slider$': path.resolve('src'),
'rc-slider/es': path.resolve('src'),
'@rc-component/slider$': path.resolve('src'),
'@rc-component/slider/es': path.resolve('src'),
},
mfsu: false,
favicons: ['https://avatars0.githubusercontent.com/u/9441414?s=200&v=4'],
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ Online examples: https://slider.react-component.now.sh/

## Slider
```js
import Slider from 'rc-slider';
import 'rc-slider/assets/index.css';
import Slider from '@rc-component/slider';
import '@rc-component/slider/assets/index.css';

export default () => (
<>
Expand All @@ -55,8 +55,8 @@ export default () => (
Please refer to [#825](https://github.com/react-component/slider/issues/825) for information regarding usage of `Range`.
An example:
```js
import Slider, { Range } from 'rc-slider';
import 'rc-slider/assets/index.css';
import Slider, { Range } from '@rc-component/slider';
import '@rc-component/slider/assets/index.css';

export default () => (
<>
Expand All @@ -78,7 +78,7 @@ export default () => (
An extension to make Slider or Range support Tooltip on handle.

```js
const Slider = require('rc-slider');
const Slider = require('@rc-component/slider');
const createSliderWithTooltip = Slider.createSliderWithTooltip;
const Range = createSliderWithTooltip(Slider.Range);
```
Expand Down
12 changes: 6 additions & 6 deletions docs/examples/components/TooltipSlider.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { SliderProps } from 'rc-slider';
import Slider from 'rc-slider';
import type { TooltipRef } from 'rc-tooltip';
import Tooltip from 'rc-tooltip';
import 'rc-tooltip/assets/bootstrap.css';
import raf from 'rc-util/lib/raf';
import type { SliderProps } from '@rc-component/slider';
import Slider from '@rc-component/slider';
import type { TooltipRef } from '@rc-component/tooltip';
import Tooltip from '@rc-component/tooltip';
import '@rc-component/tooltip/assets/bootstrap.css';
import raf from '@rc-component/util/lib/raf';
import * as React from 'react';

interface HandleTooltipProps {
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/debug.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';

Expand Down
2 changes: 1 addition & 1 deletion docs/examples/editable.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint react/no-multi-comp: 0, no-console: 0 */
import Slider, { UnstableContext } from 'rc-slider';
import Slider, { UnstableContext } from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';
import type { UnstableContextProps } from '../../src/context';
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/handle.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';
import TooltipSlider, { handleRender } from './components/TooltipSlider';
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/marks.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';

Expand Down
2 changes: 1 addition & 1 deletion docs/examples/multiple.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint react/no-multi-comp: 0, no-console: 0 */
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';

Expand Down
2 changes: 1 addition & 1 deletion docs/examples/range.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint react/no-multi-comp: 0, no-console: 0 */
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';

Expand Down
2 changes: 1 addition & 1 deletion docs/examples/slider.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint react/no-multi-comp: 0, max-len: 0 */
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';
import TooltipSlider from './components/TooltipSlider';
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/vertical.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Slider from 'rc-slider';
import Slider from '@rc-component/slider';
import React from 'react';
import '../../assets/index.less';

Expand Down
24 changes: 12 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rc-slider",
"version": "11.1.8",
"name": "@rc-component/slider",
"version": "1.0.0",
"description": "Slider UI component for React",
"keywords": [
"react",
Expand All @@ -10,7 +10,7 @@
"input",
"range"
],
"homepage": "http://github.com/react-component/slider/",
"homepage": "https://react-component.github.io/slider",
"bugs": {
"url": "https://github.com/react-component/slider/issues"
},
Expand All @@ -35,18 +35,21 @@
"docs:deploy": "gh-pages -d .doc",
"lint": "eslint src/ --ext .ts,.tsx,.jsx,.js,.md",
"now-build": "npm run docs:build",
"prepublishOnly": "npm run compile && np --yolo --no-publish",
"prepublishOnly": "npm run compile && rc-np",
"prettier": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
"start": "dumi dev",
"test": "rc-test"
"test": "rc-test",
"tsc": "bunx tsc --noEmit"
},
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.5",
"rc-util": "^5.36.0"
"@rc-component/util": "^1.3.0",
"classnames": "^2.2.5"
},
"devDependencies": {
"@rc-component/father-plugin": "^1.0.2",
"@rc-component/father-plugin": "^2.1.3",
"@rc-component/np": "^1.0.0",
"@rc-component/tooltip": "^1.2.1",
"@rc-component/trigger": "^3.5.2",
"@testing-library/jest-dom": "^6.1.5",
"@testing-library/react": "^12.1.3",
"@types/classnames": "^2.2.9",
Expand All @@ -65,10 +68,7 @@
"gh-pages": "^6.1.0",
"glob": "^7.1.6",
"less": "^4.1.3",
"np": "^10.0.4",
"rc-test": "^7.0.15",
"rc-tooltip": "^6.1.2",
"rc-trigger": "^5.3.4",
"react": "^16.0.0",
"react-dom": "^16.0.0",
"regenerator-runtime": "^0.14.0",
Expand Down
2 changes: 1 addition & 1 deletion src/Handles/Handle.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import cls from 'classnames';
import KeyCode from 'rc-util/lib/KeyCode';
import KeyCode from '@rc-component/util/lib/KeyCode';
import * as React from 'react';
import SliderContext from '../context';
import type { OnStartMove } from '../interface';
Expand Down
12 changes: 5 additions & 7 deletions src/Slider.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import useControlledState from '@rc-component/util/lib/hooks/useControlledState';
import useEvent from '@rc-component/util/lib/hooks/useEvent';
import isEqual from '@rc-component/util/lib/isEqual';
import warning from '@rc-component/util/lib/warning';
import cls from 'classnames';
import useEvent from 'rc-util/lib/hooks/useEvent';
import useMergedState from 'rc-util/lib/hooks/useMergedState';
import isEqual from 'rc-util/lib/isEqual';
import warning from 'rc-util/lib/warning';
import * as React from 'react';
import type { HandlesProps, HandlesRef } from './Handles';
import Handles from './Handles';
Expand Down Expand Up @@ -250,9 +250,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
);

// ============================ Values ============================
const [mergedValue, setValue] = useMergedState<number | number[], number[]>(defaultValue, {
value,
});
const [mergedValue, setValue] = useControlledState(defaultValue, value);

const rawValues = React.useMemo(() => {
const valueList =
Expand Down
4 changes: 2 additions & 2 deletions src/hooks/useDrag.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import useEvent from 'rc-util/lib/hooks/useEvent';
import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
import useEvent from '@rc-component/util/lib/hooks/useEvent';
import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect';
import { UnstableContext } from '../context';
import type { Direction, OnStartMove } from '../interface';
import type { OffsetValues } from './useOffset';
Expand Down
2 changes: 1 addition & 1 deletion src/hooks/useRange.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { warning } from 'rc-util/lib/warning';
import { warning } from '@rc-component/util/lib/warning';
import { useMemo } from 'react';
import type { SliderProps } from '../Slider';

Expand Down
6 changes: 3 additions & 3 deletions tests/Range.test.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable max-len, no-undef, react/no-string-refs, no-param-reassign, max-classes-per-file */
import '@testing-library/jest-dom';
import { createEvent, fireEvent, render } from '@testing-library/react';
import keyCode from 'rc-util/lib/KeyCode';
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
import { resetWarned } from 'rc-util/lib/warning';
import keyCode from '@rc-component/util/lib/KeyCode';
import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
import { resetWarned } from '@rc-component/util/lib/warning';
import React from 'react';
import Slider from '../src';

Expand Down
4 changes: 2 additions & 2 deletions tests/Slider.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import '@testing-library/jest-dom';
import { createEvent, fireEvent, render } from '@testing-library/react';
import classNames from 'classnames';
import keyCode from 'rc-util/lib/KeyCode';
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
import keyCode from '@rc-component/util/lib/KeyCode';
import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
import React from 'react';
import Slider from '../src/Slider';

Expand Down
2 changes: 1 addition & 1 deletion tests/__mocks__/rc-trigger.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import Trigger from 'rc-trigger/lib/mock';
import Trigger from '@rc-component/trigger/lib/mock';

export default Trigger;
Comment on lines +1 to 3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Jest 手动 mock 名称与包名不匹配,当前 mock 可能不生效

文件名仍为 rc-trigger.js,但代码与依赖已迁移到 @rc-component/trigger。Jest 的手动 mock 会按“模块名=文件名”匹配,除非在配置中做了 moduleNameMapper 映射,否则导入 @rc-component/trigger 时不会命中此 mock。建议二选一:

  • 重命名/新增 mock 文件为 tests/__mocks__/@rc-component/trigger.js
  • 或在 Jest 配置里增加 moduleNameMapper@rc-component/trigger 映射到现有 mock。

可以按需应用以下任一修复。

重命名文件方案:

-// tests/__mocks__/rc-trigger.js
+// tests/__mocks__/@rc-component/trigger.js
 import Trigger from '@rc-component/trigger/lib/mock';
 export default Trigger;

Jest 配置映射方案(示例:jest.config.js):

 module.exports = {
   // ...
+  moduleNameMapper: {
+    '^@rc-component/trigger$': '<rootDir>/tests/__mocks__/rc-trigger.js',
+  },
 };

快速校验仓库中是否已存在相关映射或显式 mock:


🏁 Script executed:

#!/bin/bash
# 查找 jest 配置与模块映射,以及是否仍有对 rc-trigger 的显式 mock
fd -a -t f -g "jest*.{js,ts,cjs,mjs,json}" .
rg -n -C2 -P "(moduleNameMapper|@rc-component/trigger|rc-trigger)" --no-heading
rg -n -C2 -P "jest\.mock\(['\"](rc-trigger|@rc-component/trigger)['\"]\)" --type js --type ts --type tsx --type jsx tests src

Length of output: 515


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "==== jest.config.js (if exists) ===="
if [[ -f jest.config.js ]]; then
  sed -n '1,400p' jest.config.js || true
else
  echo "jest.config.js not found at repo root"
fi

echo "==== package.json relevant lines ===="
if [[ -f package.json ]]; then
  sed -n '1,400p' package.json | rg -n --color=never "(\"@rc-component/trigger\"|moduleNameMapper|\"jest\")" || true
else
  echo "package.json not found"
fi

echo "==== tests/__mocks__/rc-trigger.js ===="
if [[ -f tests/__mocks__/rc-trigger.js ]]; then
  sed -n '1,200p' tests/__mocks__/rc-trigger.js || true
else
  echo "tests/__mocks__/rc-trigger.js not found"
fi

echo "==== repo-wide search for moduleNameMapper / jest.mock / @rc-component/trigger / rc-trigger ===="
rg -n --hidden --no-ignore -S "(moduleNameMapper|jest\.mock\(|@rc-component/trigger|rc-trigger)" --no-heading || true

Length of output: 14722


修复 Jest 手动 mock 名称与包名不匹配

tests/mocks/rc-trigger.js 当前文件名为 rc-trigger,但导入的是 '@rc-component/trigger';仓库未配置 moduleNameMapper,Jest 不会命中该 mock。可二选一:

  • 方案 A(推荐):重命名/新增 mock 为 scoped 包名:
-// tests/__mocks__/rc-trigger.js
+// tests/__mocks__/@rc-component/trigger.js
import Trigger from '@rc-component/trigger/lib/mock';
export default Trigger;
  • 方案 B:在 jest.config.js 添加映射到现有 mock:
module.exports = {
  setupFiles: ["./tests/setup.js"],
+ moduleNameMapper: {
+   '^@rc-component/trigger$': '<rootDir>/tests/__mocks__/rc-trigger.js',
+ },
};

位置:tests/mocks/rc-trigger.js,jest.config.js

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import Trigger from '@rc-component/trigger/lib/mock';
export default Trigger;
// tests/__mocks__/@rc-component/trigger.js
import Trigger from '@rc-component/trigger/lib/mock';
export default Trigger;
Suggested change
import Trigger from '@rc-component/trigger/lib/mock';
export default Trigger;
module.exports = {
setupFiles: ["./tests/setup.js"],
moduleNameMapper: {
'^@rc-component/trigger$': '<rootDir>/tests/__mocks__/rc-trigger.js',
},
};
🤖 Prompt for AI Agents
tests/__mocks__/rc-trigger.js around lines 1-3: the manual Jest mock file name
(rc-trigger.js) does not match the scoped package name '@rc-component/trigger',
so Jest won’t pick it up; fix by either (A) renaming or adding a new mock file
that matches the scoped package path (create
tests/__mocks__/@rc-component/trigger.js or
tests/__mocks__/@rc-component/trigger/index.js and export the same mock), or (B)
add a moduleNameMapper entry in jest.config.js mapping '^@rc-component/trigger$'
to '<rootDir>/tests/__mocks__/rc-trigger.js'; choose A (recommended) unless you
prefer central mapping.

4 changes: 2 additions & 2 deletions tests/common.test.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/* eslint-disable max-len, no-undef */
import '@testing-library/jest-dom';
import { createEvent, fireEvent, render } from '@testing-library/react';
import KeyCode from 'rc-util/lib/KeyCode';
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
import KeyCode from '@rc-component/util/lib/KeyCode';
import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
import React from 'react';
import Slider from '../src';

Expand Down
2 changes: 1 addition & 1 deletion tests/marks.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable max-len, no-undef */
import '@testing-library/jest-dom';
import { fireEvent, render } from '@testing-library/react';
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
import { spyElementPrototypes } from '@rc-component/util/lib/test/domHook';
import React from 'react';
import Slider from '../src';

Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"paths": {
"@/*": ["src/*"],
"@@/*": ["src/.umi/*"],
"rc-slider": ["src/index.tsx"]
"@rc-component/slider": ["src/index.tsx"]
}
}
}
Loading