From 73da83a5ef979e763533d71840b0308758872d01 Mon Sep 17 00:00:00 2001 From: bingo Date: Mon, 14 Nov 2016 11:36:55 +0800 Subject: [PATCH 1/2] add useCapture option --- index.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 725208f..695c452 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,12 @@ import React, { Component, PropTypes } from 'react' export default class ClickOutside extends Component { static propTypes = { - onClickOutside: PropTypes.func.isRequired + onClickOutside: PropTypes.func.isRequired, + useCapture: PropTypes.bool + }; + + static defaultProps = { + useCapture: true }; render() { @@ -12,11 +17,11 @@ export default class ClickOutside extends Component { } componentDidMount() { - document.addEventListener('click', this.handle, true) + document.addEventListener('click', this.handle, this.props.useCapture) } componentWillUnmount() { - document.removeEventListener('click', this.handle, true) + document.removeEventListener('click', this.handle, this.props.useCapture) } handle = e => { From 9028f7100fddad1ad821e216e7bf916a03815595 Mon Sep 17 00:00:00 2001 From: bingo Date: Mon, 14 Nov 2016 16:01:05 +0800 Subject: [PATCH 2/2] filter useCapture from props --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 695c452..6c4d527 100644 --- a/index.js +++ b/index.js @@ -12,7 +12,7 @@ export default class ClickOutside extends Component { }; render() { - const { children, onClickOutside, ...props } = this.props + const { children, onClickOutside, useCapture, ...props } = this.props return
this.container = ref}>{children}
}