Skip to content

Commit e785853

Browse files
Merge branch 'master' into bug/sc-40963/dateinput-close-calendar-when-shift-tab-on
2 parents 9ea5df5 + 29f7236 commit e785853

File tree

9 files changed

+161
-224
lines changed

9 files changed

+161
-224
lines changed
Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
() => {
2-
const [startDate, setStartDate] = useState(new Date());
3-
return (
4-
<DatePicker
5-
selected={startDate}
6-
onChange={date => setStartDate(date)}
7-
excludeDateIntervals={[{start: subDays(new Date(), 5), end: addDays(new Date(), 5) }]}
8-
placeholderText="Select a date other than the interval from 5 days ago to 5 days in the future"
9-
/>
10-
);
11-
};
12-
2+
const [startDate, setStartDate] = useState(new Date());
3+
return (
4+
<DatePicker
5+
selected={startDate}
6+
onChange={(date) => setStartDate(date)}
7+
excludeDateIntervals={[
8+
{ start: subDays(new Date(), 5), end: addDays(new Date(), 5) },
9+
]}
10+
placeholderText="Select a date other than the interval from 5 days ago to 5 days in the future"
11+
/>
12+
);
13+
};

src/month.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,11 @@ export default class Month extends React.Component {
308308
};
309309

310310
onMonthKeyDown = (event, month) => {
311-
event.preventDefault();
312311
const eventKey = event.key;
312+
if (eventKey !== "Tab") {
313+
// preventDefault on tab event blocks focus change
314+
event.preventDefault();
315+
}
313316
if (!this.props.disabledKeyboardNavigation) {
314317
switch (eventKey) {
315318
case "Enter":

test/datepicker_test.js

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,9 @@ import TestWrapper from "./test_wrapper.jsx";
1111
import PopperComponent from "../src/popper_component.jsx";
1212
import CustomInput from "./helper_components/custom_input.jsx";
1313
import * as utils from "../src/date_utils";
14-
import { util } from "chai";
1514
import Month from "../src/month.jsx";
1615

17-
function getKey(key, shiftKey = false) {
18-
let event = null;
19-
switch (key) {
20-
case "Backspace":
21-
event = { key, code: 8, which: 8 };
22-
case "Tab":
23-
event = { key, code: 9, which: 9 };
24-
case "Enter":
25-
event = { key, code: 13, which: 13 };
26-
case "Escape":
27-
event = { key, code: 27, which: 27 };
28-
case "PageUp":
29-
event = { key, keyCode: 33, which: 33 };
30-
case "PageDown":
31-
event = { key, keyCode: 34, which: 34 };
32-
case "End":
33-
event = { key, keyCode: 35, which: 35 };
34-
case "Home":
35-
event = { key, keyCode: 36, which: 36 };
36-
case "ArrowLeft":
37-
event = { key, code: 37, which: 37 };
38-
case "ArrowUp":
39-
event = { key, code: 38, which: 38 };
40-
case "ArrowRight":
41-
event = { key, code: 39, which: 39 };
42-
case "ArrowDown":
43-
event = { key, code: 40, which: 40 };
44-
case "x":
45-
event = { key, code: 88, which: 88 };
46-
}
47-
return { ...event, shiftKey };
48-
}
16+
import { getKey } from "./test_utils";
4917

5018
function getSelectedDayNode(datePicker) {
5119
return (
@@ -1986,7 +1954,6 @@ describe("DatePicker", () => {
19861954
<DatePicker
19871955
selected={selected}
19881956
onChange={(d) => {
1989-
console.log("trigger change", d);
19901957
date = d;
19911958
}}
19921959
showTimeSelect

test/month_test.js

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,7 @@ import * as utils from "../src/date_utils";
88
import TestUtils from "react-dom/test-utils";
99
import { runAxe } from "./run_axe";
1010

11-
function getKey(key) {
12-
switch (key) {
13-
case "Tab":
14-
return { key, code: 9, which: 9 };
15-
case "Enter":
16-
return { key, code: 13, which: 13 };
17-
case "ArrowLeft":
18-
return { key, code: 37, which: 37 };
19-
case "ArrowRight":
20-
return { key, code: 39, which: 39 };
21-
case "ArrowUp":
22-
return { key, code: 38, which: 38 };
23-
case "ArrowDown":
24-
return { key, code: 40, which: 40 };
25-
}
26-
throw new Error("Unknown key :" + key);
27-
}
11+
import { getKey } from "./test_utils";
2812

2913
describe("Month", () => {
3014
function assertDateRangeInclusive(month, start, end) {

test/test_utils.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
export function getKey(key, shiftKey = false) {
2+
let event = null;
3+
switch (key) {
4+
case "Backspace":
5+
event = { key, code: 8, which: 8 };
6+
case "Tab":
7+
event = { key, code: 9, which: 9 };
8+
case "Enter":
9+
event = { key, code: 13, which: 13 };
10+
case "Escape":
11+
event = { key, code: 27, which: 27 };
12+
case " ":
13+
event = { key, code: 32, which: 32 };
14+
case "PageUp":
15+
event = { key, keyCode: 33, which: 33 };
16+
case "PageDown":
17+
event = { key, keyCode: 34, which: 34 };
18+
case "End":
19+
event = { key, keyCode: 35, which: 35 };
20+
case "Home":
21+
event = { key, keyCode: 36, which: 36 };
22+
case "ArrowLeft":
23+
event = { key, code: 37, which: 37 };
24+
case "ArrowRight":
25+
event = { key, code: 39, which: 39 };
26+
case "ArrowUp":
27+
event = { key, code: 38, which: 38 };
28+
case "ArrowDown":
29+
event = { key, code: 40, which: 40 };
30+
case "x":
31+
event = { key, code: 88, which: 88 };
32+
}
33+
if (!event) {
34+
throw new Error("Unknown key :" + key);
35+
}
36+
return { ...event, shiftKey };
37+
}

test/time_input_test.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,15 @@ describe("timeInput", () => {
3232
});
3333

3434
xit("should trigger onChange event", () => {
35-
const timeComponent = shallow(
36-
<InputTimeComponent onChange={console.log} />
37-
);
35+
const timeComponent = shallow(<InputTimeComponent />);
3836
const input = timeComponent.find("input");
3937
input.simulate("change", { target: { value: "13:00" } });
4038
expect(timeComponent.state("time")).to.equal("13:00");
4139
});
4240

4341
it("should trigger onChange event and set the value as last valid timeString if empty string is passed as time input value", () => {
4442
const timeComponent = shallow(
45-
<InputTimeComponent timeString="13:00" onChange={console.log} />
43+
<InputTimeComponent timeString="13:00" onChange={() => {}} />
4644
);
4745
const input = timeComponent.find("input");
4846
input.simulate("change", { target: { value: "" } });
@@ -53,7 +51,6 @@ describe("timeInput", () => {
5351
const timeComponent = shallow(
5452
<InputTimeComponent
5553
timeString="13:00"
56-
onChange={console.log}
5754
customTimeInput={<CustomTimeInput />}
5855
/>
5956
);
@@ -69,7 +66,6 @@ describe("timeInput", () => {
6966
<InputTimeComponent
7067
date={new Date()}
7168
timeString="13:00"
72-
onChange={console.log}
7369
customTimeInput={<CustomTimeInput onTimeChange={onTimeChangeSpy} />}
7470
/>
7571
);
@@ -93,11 +89,7 @@ describe("timeInput", () => {
9389

9490
xit("should update input value if time is updated from outside", (done) => {
9591
const timeComponent = mount(
96-
<InputTimeComponent
97-
date={new Date()}
98-
timeString="13:00"
99-
onChange={console.log}
100-
/>
92+
<InputTimeComponent date={new Date()} timeString="13:00" />
10193
);
10294

10395
expect(timeComponent.find("input").props.value).to.equal("13:00");

test/timepicker_test.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,7 @@ import ReactDOM from "react-dom";
55
import Time from "../src/time";
66
import { newDate, formatDate } from "../src/date_utils";
77

8-
function getKey(key) {
9-
switch (key) {
10-
case " ":
11-
return { key, code: 32, which: 32 };
12-
case "Enter":
13-
return { key, code: 13, which: 13 };
14-
case "Escape":
15-
return { key, code: 27, which: 27 };
16-
}
17-
throw new Error("Unknown key :" + key);
18-
}
8+
import { getKey } from "./test_utils";
199

2010
describe("TimePicker", () => {
2111
let datePicker;
@@ -78,7 +68,6 @@ describe("TimePicker", () => {
7868
showTimeSelect
7969
showTimeSelectOnly
8070
timeClassName={handleTimeColors}
81-
onChange={() => console.log("changed")}
8271
open
8372
focus
8473
/>

test/year_dropdown_options_test.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,6 @@ describe("YearDropdownOptions with scrollable dropwdown", () => {
279279
.map((node) => node.text());
280280
const x = textContents.find((year) => year === utils.getYear(minDate));
281281
expect(x).to.be.undefined;
282-
console.log(
283-
"kektus",
284-
x,
285-
textContents.find((year) => year === utils.getYear(minDate))
286-
);
287282
expect(textContents.find((year) => year === utils.getYear(maxDate))).to.be
288283
.undefined;
289284
expect(

0 commit comments

Comments
 (0)