Skip to content

Commit 7221ef2

Browse files
authored
fix: RangePicker throws error when input end value first (#832)
1 parent 8856255 commit 7221ef2

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

docs/examples/modes.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const defaultStartValue = moment('2019-09-03 05:02:03');
1010
const defaultEndValue = moment('2019-11-28 01:02:03');
1111

1212
function formatDate(date: Moment | null) {
13-
return date ? date.format('YYYY-MM-DD HH:mm:ss') : 'null';
13+
return date ? date.format('YYYY-MM-DD HH:mm:ss') : null;
1414
}
1515

1616
export default () => {
@@ -52,4 +52,4 @@ export default () => {
5252
</div>
5353
</div>
5454
);
55-
};
55+
};

src/PickerInput/hooks/useRangePickerValue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export default function useRangePickerValue<DateType extends object, ValueType e
146146
}
147147

148148
// Year offset
149-
if (pickerMode === 'year') {
149+
if (pickerMode === 'year' && startDate) {
150150
const srcYear = Math.floor(generateConfig.getYear(startDate) / 10);
151151
const tgtYear = Math.floor(generateConfig.getYear(endDate) / 10);
152152
if (srcYear !== tgtYear) {

tests/keyboard.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ describe('Picker.Keyboard', () => {
3636
charCode: keyCode,
3737
...info,
3838
});
39-
// document.querySelector('.rc-picker-panel').simulate('keyDown', { which: keyCode, ...info });
39+
document.querySelector('.rc-picker-panel').simulate('keyDown', { which: keyCode, ...info });
4040
}
4141

4242
beforeEach(() => {

tests/picker.spec.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
confirmOK,
1919
// MomentPicker,
2020
DayPicker,
21+
DayRangePicker,
2122
findCell,
2223
getDay,
2324
isOpen,
@@ -288,6 +289,22 @@ describe('Picker.Basic', () => {
288289
expect(document.querySelector(selected)).toBeFalsy();
289290
});
290291
});
292+
293+
// https://github.com/ant-design/ant-design/issues/49400
294+
it('should not throw errow when input end year first', () => {
295+
const { container } = render(
296+
<DayRangePicker picker="year" />,
297+
);
298+
openPicker(container);
299+
fireEvent.focus(container.querySelectorAll('input')[1]);
300+
expect(() => {
301+
fireEvent.change(container.querySelectorAll('input')[1], {
302+
target: {
303+
value: '2024',
304+
},
305+
});
306+
}).not.toThrow();
307+
});
291308
});
292309

293310
describe('focus test', () => {

0 commit comments

Comments
 (0)