Skip to content

Instantly share code, notes, and snippets.

@jsdir
Created September 6, 2014 21:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jsdir/6742d8cf89786ed0fdd8 to your computer and use it in GitHub Desktop.
Save jsdir/6742d8cf89786ed0fdd8 to your computer and use it in GitHub Desktop.
AutoCloseOverlayTrigger
OverlayTrigger = require "react-bootstrap/OverlayTrigger"
inTree = (el, parent) ->
loop
return true if el is parent
break unless el = el.parentNode
AutoCloseOverlayTrigger = React.createClass
displayName: "AutoCloseOverlayTrigger"
componentDidMount: ->
window.addEventListener "click", @onWindowClick
componentWillUnmount: ->
window.removeEventListener "click", @onWindowClick
onWindowClick: (e) ->
isInTree = inTree e.target, @refs.overlay.getOverlayDOMNode()
if e.target isnt @refs.overlay.getDOMNode() and not isInTree
@refs.overlay.hide()
render: ->
@transferPropsTo OverlayTrigger ref: "overlay", @props.children
module.exports = AutoCloseOverlayTrigger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment