Skip to content

Commit 3aa7e35

Browse files
authored
Merge pull request react-bootstrap#117 from react-bootstrap/rcw-doc
Fix rootClose on unmounting components
2 parents dab5252 + 050b9a5 commit 3aa7e35

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/RootCloseWrapper.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,11 @@ export default class RootCloseWrapper extends React.Component {
4444
bindRootCloseHandlers() {
4545
const doc = ownerDocument(this);
4646

47+
// Use capture for this listener so it fires before React's listener, to
48+
// avoid false positives in the contains() check below if the target DOM
49+
// element is removed in the React mouse callback.
4750
this._onDocumentMouseListener =
48-
addEventListener(doc, this.props.event, this.handleDocumentMouse);
51+
addEventListener(doc, this.props.event, this.handleDocumentMouse, true);
4952

5053
this._onDocumentKeyupListener =
5154
addEventListener(doc, 'keyup', this.handleDocumentKeyUp);

src/utils/addEventListener.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import addEventListener from 'dom-helpers/events/on';
22
import removeEventListener from 'dom-helpers/events/off';
33

4-
export default function (node, event, handler) {
5-
addEventListener(node, event, handler);
4+
export default function (node, event, handler, capture) {
5+
addEventListener(node, event, handler, capture);
66
return {
77
remove(){
8-
removeEventListener(node, event, handler);
8+
removeEventListener(node, event, handler, capture);
99
}
1010
};
1111
}

0 commit comments

Comments
 (0)