UNPKG

moq-ui

Version:

Simple, customizable UI components built with React

39 lines (29 loc) 974 B
var React = require('react'); var Events = require('../utils/events'); var Dom = require('../utils/dom'); module.exports = { //When the component mounts, listen to click events and check if we need to //Call the componentClickAway function. componentDidMount: function() { if (!this.manuallyBindClickAway) this._bindClickAway(); }, componentWillUnmount: function() { this._unbindClickAway(); }, _checkClickAway: function(e) { var el = React.findDOMNode(this); // Check if the target is inside the current component if (this.isMounted() && e.target != el && !Dom.isDescendant(el, e.target) && document.documentElement.contains(e.target)) { if (this.componentClickAway) this.componentClickAway(); } }, _bindClickAway: function() { Events.on(document, 'click', this._checkClickAway); }, _unbindClickAway: function() { Events.off(document, 'click', this._checkClickAway); } };