diff options
author | =Corey Hulen <corey@hulen.com> | 2016-03-16 18:13:16 -0700 |
---|---|---|
committer | =Corey Hulen <corey@hulen.com> | 2016-03-16 18:13:16 -0700 |
commit | b9d5b4e5dcc1585397f1e1d2e53c5f040ee76220 (patch) | |
tree | 85d2c293aa3456182a754fefe6646162b516eb6c /webapp/components/error_bar.jsx | |
parent | e101b2cf7c172d1c4ff20e0df63917b5b8f923ed (diff) | |
parent | cba59d4eb6ef0f65304bc72339c676ebfd653e2b (diff) | |
download | chat-b9d5b4e5dcc1585397f1e1d2e53c5f040ee76220.tar.gz chat-b9d5b4e5dcc1585397f1e1d2e53c5f040ee76220.tar.bz2 chat-b9d5b4e5dcc1585397f1e1d2e53c5f040ee76220.zip |
merging files
Diffstat (limited to 'webapp/components/error_bar.jsx')
-rw-r--r-- | webapp/components/error_bar.jsx | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/webapp/components/error_bar.jsx b/webapp/components/error_bar.jsx new file mode 100644 index 000000000..572f96e02 --- /dev/null +++ b/webapp/components/error_bar.jsx @@ -0,0 +1,85 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import ErrorStore from 'stores/error_store.jsx'; +import * as Utils from 'utils/utils.jsx'; + +import React from 'react'; + +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; + } + + return true; + } + + componentWillMount() { + if (global.window.mm_config.SendEmailNotifications === 'false') { + ErrorStore.storeLastError({message: Utils.localizeMessage('error_bar.preview_mode', 'Preview Mode: Email notifications have not been configured')}); + this.onErrorChange(); + } + } + + 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(); + } + + ErrorStore.clearLastError(); + this.setState({message: null}); + } + + render() { + if (!this.isValidError(this.state)) { + return <div/>; + } + + return ( + <div className='error-bar'> + <span>{this.state.message}</span> + <a + href='#' + className='error-bar__close' + onClick={this.handleClose} + > + × + </a> + </div> + ); + } +} + +export default ErrorBar; |