1
0
mirror of https://github.com/ascribe/onion.git synced 2024-12-22 09:23:13 +01:00

property blur refactor

This commit is contained in:
diminator 2015-10-12 17:59:45 +02:00
parent 8d970a65c4
commit 6175775503
2 changed files with 18 additions and 13 deletions

View File

@ -8,7 +8,7 @@ import Tooltip from 'react-bootstrap/lib/Tooltip';
import AppConstants from '../../constants/application_constants';
import { mergeOptions } from '../../utils/general_utils';
import { mergeOptions, isDescendantOfDOMNode } from '../../utils/general_utils';
let Property = React.createClass({
@ -125,17 +125,6 @@ let Property = React.createClass({
}
},
isDescendant(parent, child) {
let node = child.parentNode;
while (node != null) {
if (node === parent) {
return true;
}
node = node.parentNode;
}
return false;
},
handleChange(event) {
this.props.handleChange(event);
if (typeof this.props.onChange === 'function') {
@ -166,7 +155,7 @@ let Property = React.createClass({
handleBlur(event) {
let e = event.toElement || event.relatedTarget;
if (this.isDescendant(this.getDOMNode(), e)){
if (isDescendantOfDOMNode(this.getDOMNode(), e)){
return;
}
if (this.refs.input.getDOMNode() === document.activeElement) {

View File

@ -232,4 +232,20 @@ export function getSubdomain() {
let { host } = window.location;
let tokens = host.split('.');
return tokens.length > 2 ? tokens[0] : 'www';
}
/**
* Checks if the child DOM node is a descendant of the parent DOM node
* @return {boolean}
*/
export function isDescendantOfDOMNode(parent, child) {
let node = child.parentNode;
while (node != null) {
if (node === parent) {
return true;
}
node = node.parentNode;
}
return false;
}