summaryrefslogtreecommitdiffstats
path: root/webapp/components/error_bar.jsx
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-03-14 08:50:46 -0400
committerChristopher Speller <crspeller@gmail.com>2016-03-16 18:02:55 -0400
commit12896bd23eeba79884245c1c29fdc568cf21a7fa (patch)
tree4e7f83d3e2564b9b89d669e9f7905ff11768b11a /webapp/components/error_bar.jsx
parent29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff)
downloadchat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.gz
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.bz2
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.zip
Converting to Webpack. Stage 1.
Diffstat (limited to 'webapp/components/error_bar.jsx')
-rw-r--r--webapp/components/error_bar.jsx85
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}
+ >
+ &times;
+ </a>
+ </div>
+ );
+ }
+}
+
+export default ErrorBar;