// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ErrorStore from '../stores/error_store.jsx'; export default class ErrorBar extends React.Component { constructor() { super(); this.onErrorChange = this.onErrorChange.bind(this); this.handleClose = this.handleClose.bind(this); this.state = ErrorStore.getLastError(); } 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); } componentWillUnmount() { ErrorStore.removeChangeListener(this.onErrorChange); } onErrorChange() { var newState = ErrorStore.getLastError(); if (newState) { this.setState(newState); } else { this.setState({message: null}); } } handleClose(e) { if (e) { e.preventDefault(); } this.setState({message: null}); } render() { if (!this.isValidError(this.state)) { return
; } return (
{this.state.message} ×
); } }