diff options
author | =Corey Hulen <corey@hulen.com> | 2015-10-06 16:17:27 -0700 |
---|---|---|
committer | =Corey Hulen <corey@hulen.com> | 2015-10-06 16:17:27 -0700 |
commit | 4345dce3b8c623a79b7d5c14bf67bc1a3c1633ed (patch) | |
tree | f49a0bfb1455ed6b38eac82a078756b1ef038a63 /web/react/components/error_bar.jsx | |
parent | fe802fb9c4afdf27a2fb56eb472f48eb921b4de0 (diff) | |
download | chat-4345dce3b8c623a79b7d5c14bf67bc1a3c1633ed.tar.gz chat-4345dce3b8c623a79b7d5c14bf67bc1a3c1633ed.tar.bz2 chat-4345dce3b8c623a79b7d5c14bf67bc1a3c1633ed.zip |
PLT-500 fixing connection msg issues
Diffstat (limited to 'web/react/components/error_bar.jsx')
-rw-r--r-- | web/react/components/error_bar.jsx | 65 |
1 files changed, 47 insertions, 18 deletions
diff --git a/web/react/components/error_bar.jsx b/web/react/components/error_bar.jsx index 05726e860..0af1acc6e 100644 --- a/web/react/components/error_bar.jsx +++ b/web/react/components/error_bar.jsx @@ -12,17 +12,47 @@ export default class ErrorBar extends React.Component { this.prevTimer = null; this.state = ErrorStore.getLastError(); - if (this.state && this.state.message) { + if (this.isValidError(this.state)) { this.prevTimer = setTimeout(this.handleClose, 10000); } } + isValidError(s) { + if (!s) { + return false; + } + + if (!s.message) { + return false; + } + + if (s.connErrorCount && s.connErrorCount >= 1 && s.connErrorCount < 7) { + return false; + } + + return true; + } + + isConnectionError(s) { + if (!s.connErrorCount || s.connErrorCount === 0) { + return false; + } + + if (s.connErrorCount > 7) { + return true; + } + + return false; + } + componentDidMount() { ErrorStore.addChangeListener(this.onErrorChange); - $('body').css('padding-top', $(React.findDOMNode(this)).outerHeight()); + $(window).resize(() => { - if (this.state && this.state.message) { - $('body').css('padding-top', $(React.findDOMNode(this)).outerHeight()); + if (this.isValidError(this.state)) { + $('body').css('padding-top', '30px'); + } else { + $('body').css('padding-top', '0'); } }); } @@ -31,6 +61,14 @@ export default class ErrorBar extends React.Component { ErrorStore.removeChangeListener(this.onErrorChange); } + componentWillUpdate(nextProps, nextState) { + if (this.isValidError(nextState)) { + $('body').css('padding-top', '30px'); + } else { + $('body').css('padding-top', '0'); + } + } + onErrorChange() { var newState = ErrorStore.getLastError(); @@ -41,7 +79,9 @@ export default class ErrorBar extends React.Component { if (newState) { this.setState(newState); - this.prevTimer = setTimeout(this.handleClose, 10000); + if (!this.isConnectionError(newState)) { + this.prevTimer = setTimeout(this.handleClose, 10000); + } } else { this.setState({message: null}); } @@ -52,22 +92,11 @@ export default class ErrorBar extends React.Component { e.preventDefault(); } - ErrorStore.storeLastError(null); - ErrorStore.emitChange(); - - $('body').css('padding-top', '0'); + this.setState({message: null}); } render() { - if (!this.state) { - return <div/>; - } - - if (!this.state.message) { - return <div/>; - } - - if (this.state.connErrorCount < 7) { + if (!this.isValidError(this.state)) { return <div/>; } |