Skip to content

Commit ed68cb0

Browse files
abaliunov-sckvolkovich-sc
authored andcommitted
Fix bug "Click outside of DayPicker popup" (OpusCapita#44)
1 parent 39840f5 commit ed68cb0

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,6 @@
9494
"moment": "2.18.1",
9595
"prop-types": "15.6.0",
9696
"react-day-picker": "6.1.0",
97-
"react-portal": "4.1.0"
97+
"react-portal": "4.1.2"
9898
}
9999
}

src/client/components/DatePicker/DatePicker.react.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class DatePicker extends Component {
6060
}
6161

6262
componentDidMount() {
63+
document.body.addEventListener('click', this.handleBodyClick);
6364
document.body.addEventListener('keydown', this.handleBodyKeyDown);
6465
}
6566

@@ -77,6 +78,7 @@ class DatePicker extends Component {
7778
}
7879

7980
componentWillUnmount() {
81+
document.body.removeEventListener('click', this.handleBodyClick);
8082
document.body.removeEventListener('keydown', this.handlePortalClose);
8183
}
8284

@@ -101,6 +103,17 @@ class DatePicker extends Component {
101103
this.props.onChange(value);
102104
};
103105

106+
handleBodyClick = event => {
107+
let clickedOutside = (
108+
!this.container.contains(event.target) &&
109+
!this.datePickerRef.contains(event.target)
110+
);
111+
112+
if (clickedOutside) {
113+
this.hidePicker();
114+
}
115+
};
116+
104117
handleBodyKeyDown = event => {
105118
if (event.which === 9) {
106119
this.hidePicker();
@@ -161,7 +174,6 @@ class DatePicker extends Component {
161174
{interpolatedStyle => (
162175
<Portal
163176
isOpened={true}
164-
closeOnOutsideClick={true}
165177
onClose={this.handlePortalClose}
166178
>
167179
<div

0 commit comments

Comments
 (0)