diff --git a/src/js/table/index.js b/src/js/table/index.js index faf710c56..f658030a3 100644 --- a/src/js/table/index.js +++ b/src/js/table/index.js @@ -25,15 +25,32 @@ class EditDialog extends React.Component { } onKeyUp = (event) => { - // hide box and return old value + // hide box on escape key if (event.which === keycode('escape')) { - this.props.onSubmit(this.props.value) + this.props.onCancel() } } + onClick = (event) => { + // make sure click happened outside of component + const element = this.c + // https://github.com/tj/react-click-outside/blob/master/index.js#L25 + if (!element.contains(event.target)) { + this.props.onCancel() + } + } + + componentDidMount = () => { + document.addEventListener('click', this.onClick) + } + + componentWillUnmount = () => { + document.removeEventListener('click', this.onClick) + } + render () { return ( -