Skip to content

Commit 0d82464

Browse files
committed
fix: disabled should work as expact
1 parent 564030a commit 0d82464

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/RangePicker.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ function reorderValues<DateType>(
6060
function canValueTrigger<DateType>(
6161
value: EventValue<DateType>,
6262
index: number,
63+
disabled: [boolean, boolean],
6364
allowEmpty?: [boolean, boolean] | null,
6465
): boolean {
6566
if (value) {
@@ -70,6 +71,10 @@ function canValueTrigger<DateType>(
7071
return true;
7172
}
7273

74+
if (disabled[(index + 1) % 2]) {
75+
return true;
76+
}
77+
7378
return false;
7479
}
7580

@@ -393,12 +398,24 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
393398
onCalendarChange(values, [startStr, endStr]);
394399
}
395400

396-
const canStartValueTrigger = canValueTrigger(startValue, 0, allowEmpty);
397-
const canEndValueTrigger = canValueTrigger(endValue, 1, allowEmpty);
401+
const canStartValueTrigger = canValueTrigger(
402+
startValue,
403+
0,
404+
mergedDisabled,
405+
allowEmpty,
406+
);
407+
const canEndValueTrigger = canValueTrigger(
408+
endValue,
409+
1,
410+
mergedDisabled,
411+
allowEmpty,
412+
);
398413

399414
const canTrigger =
400415
values === null || (canStartValueTrigger && canEndValueTrigger);
401416

417+
console.log('>>>', canTrigger);
418+
402419
if (canTrigger) {
403420
// Trigger onChange only when value is validate
404421
setInnerValue(values);

tests/range.spec.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,21 @@ describe('Picker.Range', () => {
276276
);
277277
errSpy.mockReset();
278278
});
279+
280+
it('clear should trigger change', () => {
281+
const onChange = jest.fn();
282+
const wrapper = mount(
283+
<MomentRangePicker
284+
disabled={[false, true]}
285+
defaultValue={[getMoment('1990-01-01'), getMoment('2000-11-11')]}
286+
onChange={onChange}
287+
allowClear
288+
/>,
289+
);
290+
291+
wrapper.clearValue();
292+
expect(onChange.mock.calls[0][1]).toEqual(['', '2000-11-11']);
293+
});
279294
});
280295

281296
describe('ranges', () => {

0 commit comments

Comments
 (0)