Skip to content

Commit d861078

Browse files
Merge pull request #4689 from mirus-ua/fix/swapRange-with-input-not-closing
fix: popper dosen't close if swapRange prop was passed
2 parents 0d2765f + b9a83df commit d861078

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/index.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,11 @@ export default class DatePicker extends React.Component {
602602

603603
const { startDate, endDate } = this.props;
604604

605-
if (startDate && !endDate && !isDateBefore(date, startDate)) {
605+
if (
606+
startDate &&
607+
!endDate &&
608+
(this.props.swapRange || !isDateBefore(date, startDate))
609+
) {
606610
this.setOpen(false);
607611
}
608612
}

test/datepicker_test.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2301,6 +2301,25 @@ describe("DatePicker", () => {
23012301
expect(container.querySelector(".react-datepicker")).toBeNull();
23022302
});
23032303

2304+
it("should be closed after clicking day when startDate has a value (endDate is being selected) and swapRange prop was passed", () => {
2305+
const startDate = new Date("2021-01-01 00:00:00");
2306+
const endDate = null;
2307+
const { container } = render(
2308+
<DatePicker
2309+
swapRange
2310+
selectsRange
2311+
startDate={startDate}
2312+
endDate={endDate}
2313+
/>,
2314+
);
2315+
fireEvent.click(container.querySelector("input"));
2316+
2317+
const days = container.querySelectorAll(".react-datepicker__day");
2318+
const day = days[Math.floor(days.length / 2)];
2319+
fireEvent.click(day);
2320+
expect(container.querySelector(".react-datepicker")).toBeNull();
2321+
});
2322+
23042323
it("has clear button rendered when isClearable is true and startDate has value", () => {
23052324
const startDate = new Date("2021-01-01 00:00:00");
23062325
const endDate = new Date("2021-01-21 00:00:00");

0 commit comments

Comments
 (0)