Skip to content

Commit 37b240b

Browse files
authored
🐛 fix: disabledDate is not work when selecting time directly (#108)
1 parent a1a20a8 commit 37b240b

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/RangePicker.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,9 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
858858
prefixCls,
859859
components,
860860
needConfirmButton,
861-
okDisabled: !getValue(selectedValue, mergedActivePickerIndex),
861+
okDisabled:
862+
!getValue(selectedValue, mergedActivePickerIndex) ||
863+
(disabledDate && disabledDate(selectedValue[mergedActivePickerIndex])),
862864
locale,
863865
rangeList,
864866
onOk: () => {

tests/range.spec.tsx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,4 +1501,40 @@ describe('Picker.Range', () => {
15011501
wrapper.closePicker(1);
15021502
});
15031503
});
1504+
1505+
// https://github.com/ant-design/ant-design/issues/25746
1506+
it('ok button should be disabled when disabledDate is true', () => {
1507+
const disabledDate = () => {
1508+
// Can not select days before today and today
1509+
return true;
1510+
};
1511+
const wrapper = mount(
1512+
<MomentRangePicker
1513+
showTime
1514+
disabledDate={disabledDate}
1515+
defaultValue={[getMoment('2020-07-24'), getMoment('2020-08-24')]}
1516+
/>,
1517+
);
1518+
1519+
wrapper.openPicker();
1520+
1521+
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy();
1522+
1523+
wrapper
1524+
.find('PickerPanel')
1525+
.first()
1526+
.find('.rc-picker-time-panel-column')
1527+
.first()
1528+
.find('li')
1529+
.at(6)
1530+
.simulate('click');
1531+
1532+
expect(
1533+
wrapper
1534+
.find('input')
1535+
.first()
1536+
.props().value,
1537+
).toEqual('2020-07-24 06:00:00');
1538+
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy();
1539+
});
15041540
});

0 commit comments

Comments
 (0)