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
7 changes: 6 additions & 1 deletion src/RangePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1102,7 +1102,12 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
}

// Switch
triggerOpen(false, mergedActivePickerIndex, 'confirm');
const nextActivePickerIndex = mergedActivePickerIndex === 0 ? 1 : 0;
if (mergedDisabled[nextActivePickerIndex]) {
triggerOpen(false, false, 'confirm');
} else {
triggerOpen(false, mergedActivePickerIndex, 'confirm');
}
} else {
setSelectedValue(values);
}
Expand Down
6 changes: 3 additions & 3 deletions tests/__snapshots__/range.spec.tsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ exports[`Picker.Range panelRender 1`] = `
<div>
<div
class="rc-picker-dropdown rc-picker-dropdown-range rc-picker-dropdown-placement-bottomLeft"
style="left: -1000vw; top: -1000vh; box-sizing: border-box;"
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box;"
>
<div
class="rc-picker-range-wrapper rc-picker-date-range-wrapper"
Expand Down Expand Up @@ -201,7 +201,7 @@ exports[`Picker.Range use dateRender and monthCellRender in date range picker 1`
<div>
<div
class="rc-picker-dropdown rc-picker-dropdown-range rc-picker-dropdown-placement-bottomLeft"
style="left: -1000vw; top: -1000vh; box-sizing: border-box;"
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box;"
>
<div
class="rc-picker-range-wrapper rc-picker-date-range-wrapper"
Expand Down Expand Up @@ -1161,7 +1161,7 @@ exports[`Picker.Range use dateRender and monthCellRender in month range picker 1
<div>
<div
class="rc-picker-dropdown rc-picker-dropdown-range rc-picker-dropdown-placement-bottomLeft"
style="left: -1000vw; top: -1000vh; box-sizing: border-box;"
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box;"
>
<div
class="rc-picker-range-wrapper rc-picker-month-range-wrapper"
Expand Down
16 changes: 16 additions & 0 deletions tests/range.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -238,12 +238,28 @@ describe('Picker.Range', () => {
});

describe('disabled', () => {
it('should no panel open with disabled', () => {
const { baseElement } = render(<MomentRangePicker disabled />);
expect(baseElement.querySelectorAll('.rc-picker-input')).toHaveLength(2);
fireEvent.click(baseElement.querySelector('.rc-picker-input'));
expect(baseElement.querySelector('.rc-picker-dropdown')).toBeFalsy();
});

it('basic disabled check', () => {
const { container } = render(<MomentRangePicker disabled={[true, false]} />);
expect(container.querySelectorAll('input')[0].disabled).toBeTruthy();
expect(container.querySelectorAll('input')[1].disabled).toBeFalsy();
});

it('should close panel when finish choose panel and next is disabled with disabled = [false, true]/[true,false]', () => {
const { baseElement, container } = render(<MomentRangePicker disabled={[false, true]} />);
expect(baseElement.querySelectorAll('.rc-picker-input')).toHaveLength(2);
fireEvent.click(baseElement.querySelectorAll('.rc-picker-input')[0]);
expect(baseElement.querySelector('.rc-picker-dropdown-hidden')).toBeFalsy();
fireEvent.click(baseElement.querySelector('.rc-picker-cell-inner'));
expect(baseElement.querySelector('.rc-picker-dropdown-hidden')).toBeTruthy();
});

it('startDate will have disabledDate when endDate is not selectable', () => {
const onChange = jest.fn();
const { container } = render(
Expand Down