Skip to content

Commit f9b453b

Browse files
刘欢claude
andcommitted
refactor: change recommendPage to info object to avoid parameter pollution
Co-Authored-By: Claude <noreply@anthropic.com>
1 parent ec587c1 commit f9b453b

6 files changed

Lines changed: 11 additions & 6 deletions

File tree

docs/examples/jumper.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ function onShowSizeChange(current, pageSize) {
99
console.log(pageSize);
1010
}
1111

12-
function onChange(current, pageSize) {
12+
function onChange(current, pageSize, info) {
1313
console.log('onChange:current=', current);
1414
console.log('onChange:pageSize=', pageSize);
15+
console.log('onChange:recommendPage=', info?.recommendPage);
1516
}
1617

1718
const App = () => (

src/Pagination.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ const Pagination: React.FC<PaginationProps> = (props) => {
209209
setInternalInputVal(nextCurrent);
210210
onShowSizeChange?.(current, size);
211211
setCurrent(nextCurrent);
212-
onChange?.(nextCurrent, size, recommendPage);
212+
onChange?.(nextCurrent, size, { recommendPage });
213213
}
214214

215215
function handleChange(page: number) {

src/interface.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,11 @@ export interface PaginationData {
5858

5959
export interface PaginationProps
6060
extends Partial<PaginationData>, React.AriaAttributes {
61-
onChange?: (page: number, pageSize: number, recommendPage?: number) => void;
61+
onChange?: (
62+
page: number,
63+
pageSize: number,
64+
info?: { recommendPage?: number },
65+
) => void;
6266
onShowSizeChange?: (current: number, size: number) => void;
6367
itemRender?: (
6468
page: number,

tests/index.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ describe('current value on onShowSizeChange when total is 0', () => {
483483
fireEvent.keyDown(input, { key: 'Down', keyCode: 40, which: 40 });
484484
fireEvent.keyDown(input, { key: 'Enter', keyCode: 13, which: 13 });
485485
expect(onShowSizeChange).toHaveBeenLastCalledWith(1, 20);
486-
expect(onChange).toHaveBeenLastCalledWith(1, 20, 1);
486+
expect(onChange).toHaveBeenLastCalledWith(1, 20, { recommendPage: 1 });
487487
});
488488

489489
it('when total is 0, pager should show `1` and being disabled', () => {

tests/simple.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ describe('simple Pagination', () => {
131131
const pageSize1 = container.querySelectorAll('.rc-select-item')[0];
132132
fireEvent.click(pageSize1);
133133
expect(onChange).toHaveBeenCalled();
134-
expect(onChange).toHaveBeenLastCalledWith(1, 10, 1);
134+
expect(onChange).toHaveBeenLastCalledWith(1, 10, { recommendPage: 1 });
135135
});
136136

137137
it('should support keyboard event', () => {

tests/sizer.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ describe('Pagination with sizer', () => {
6767
const pageSize1 = container.querySelectorAll('.rc-select-item')[0];
6868
fireEvent.click(pageSize1);
6969
expect(onChange).toHaveBeenCalled();
70-
expect(onChange).toHaveBeenLastCalledWith(1, 10, 1);
70+
expect(onChange).toHaveBeenLastCalledWith(1, 10, { recommendPage: 1 });
7171
});
7272

7373
// https://github.com/ant-design/ant-design/issues/26580

0 commit comments

Comments
 (0)