Skip to content

Commit 8f5d5d0

Browse files
committed
Fix widgets opening behind dropdowns
1 parent 6d9669c commit 8f5d5d0

File tree

4 files changed

+52
-12
lines changed

4 files changed

+52
-12
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
"prop-types": "^15.6.0",
4040
"react-calendar": "^3.3.1",
4141
"react-clock": "^3.0.0",
42-
"react-date-picker": "^8.3.2",
42+
"react-date-picker": "^8.3.3",
4343
"react-fit": "^1.0.3",
44-
"react-time-picker": "^4.4.1"
44+
"react-time-picker": "^4.4.2"
4545
},
4646
"devDependencies": {
4747
"@babel/cli": "^7.15.0",

src/DateTimePicker.jsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ export default class DateTimePicker extends PureComponent {
129129
}
130130

131131
if (openWidgetsOnFocus) {
132+
if (event.target.getAttribute('data-select') === 'true') {
133+
return;
134+
}
135+
132136
switch (event.target.name) {
133137
case 'day':
134138
case 'month':

src/DateTimePicker.spec.jsx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,24 @@ describe('DateTimePicker', () => {
371371

372372
expect(calendar2).toHaveLength(0);
373373
});
374+
375+
it('does not open Calendar component when focusing on a select element', () => {
376+
const component = mount(
377+
<DateTimePicker format="dd.MMMM.yyyy hh:mm:ss a" />,
378+
);
379+
380+
const calendar = component.find('Calendar');
381+
const select = component.find('select[name="month"]');
382+
383+
expect(calendar).toHaveLength(0);
384+
385+
select.simulate('focus');
386+
component.update();
387+
388+
const calendar2 = component.find('Calendar');
389+
390+
expect(calendar2).toHaveLength(0);
391+
});
374392
});
375393

376394
describe('handles opening Clock component when focusing on an input inside properly', () => {
@@ -427,6 +445,24 @@ describe('DateTimePicker', () => {
427445

428446
expect(clock2).toHaveLength(0);
429447
});
448+
449+
it('does not open Clock component when focusing on a select element', () => {
450+
const component = mount(
451+
<DateTimePicker format="dd.MMMM.yyyy hh:mm:ss a" />,
452+
);
453+
454+
const clock = component.find('Clock');
455+
const select = component.find('select[name="amPm"]');
456+
457+
expect(clock).toHaveLength(0);
458+
459+
select.simulate('focus');
460+
component.update();
461+
462+
const clock2 = component.find('Clock');
463+
464+
expect(clock2).toHaveLength(0);
465+
});
430466
});
431467

432468
it('closes Calendar component when clicked outside', () => {

yarn.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5885,9 +5885,9 @@ __metadata:
58855885
languageName: node
58865886
linkType: hard
58875887

5888-
"react-date-picker@npm:^8.3.2":
5889-
version: 8.3.2
5890-
resolution: "react-date-picker@npm:8.3.2"
5888+
"react-date-picker@npm:^8.3.3":
5889+
version: 8.3.3
5890+
resolution: "react-date-picker@npm:8.3.3"
58915891
dependencies:
58925892
"@types/react-calendar": ^3.0.0
58935893
"@wojtekmaj/date-utils": ^1.0.3
@@ -5902,7 +5902,7 @@ __metadata:
59025902
peerDependencies:
59035903
react: ^16.3.0 || ^17.0.0-0
59045904
react-dom: ^16.3.0 || ^17.0.0-0
5905-
checksum: 545d6ccd5a78a3b77e94481dfd9b7c8eb87c72dcd56acb003921f4090d09ac4cd83fcffd547c2c9baf927b6f8723598cf1fb79afa8b4de0a1b51500bf2e4307b
5905+
checksum: a0cc3d725ed2baca58062157add6bc40c38b67625bd0826d90e79277e98753ce7d6e496efdee223a9ec3f956bf4ebf4ce1e89e444cdcb815080c61c0f654bf56
59065906
languageName: node
59075907
linkType: hard
59085908

@@ -5929,10 +5929,10 @@ __metadata:
59295929
react: ^17.0.0
59305930
react-calendar: ^3.3.1
59315931
react-clock: ^3.0.0
5932-
react-date-picker: ^8.3.2
5932+
react-date-picker: ^8.3.3
59335933
react-dom: ^17.0.0
59345934
react-fit: ^1.0.3
5935-
react-time-picker: ^4.4.1
5935+
react-time-picker: ^4.4.2
59365936
rimraf: ^3.0.0
59375937
peerDependencies:
59385938
react: ^16.3.0 || ^17.0.0-0
@@ -6006,9 +6006,9 @@ __metadata:
60066006
languageName: node
60076007
linkType: hard
60086008

6009-
"react-time-picker@npm:^4.4.1":
6010-
version: 4.4.1
6011-
resolution: "react-time-picker@npm:4.4.1"
6009+
"react-time-picker@npm:^4.4.2":
6010+
version: 4.4.2
6011+
resolution: "react-time-picker@npm:4.4.2"
60126012
dependencies:
60136013
"@wojtekmaj/date-utils": ^1.0.0
60146014
get-user-locale: ^1.2.0
@@ -6022,7 +6022,7 @@ __metadata:
60226022
peerDependencies:
60236023
react: ^16.3.0 || ^17.0.0-0
60246024
react-dom: ^16.3.0 || ^17.0.0-0
6025-
checksum: 6d9658b6b2673baeab014d62257d0e65d00fe14571e27dd1b9b5fbfa03b7dc7d7d10d1965ce850896cca9414157e0bccacae4f868efdf7a95da93c63dc2a9b29
6025+
checksum: 9d7efbc6a4e7e2607992459bb54d7444992f4375e06cc0f071b56000de8d70c4eac99ee6fa12a757008451ac29539745edee75ea4751cf600d7a1e8d13f5b392
60266026
languageName: node
60276027
linkType: hard
60286028

0 commit comments

Comments
 (0)