summaryrefslogtreecommitdiffstats
path: root/web/react/stores
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/stores')
-rw-r--r--web/react/stores/error_store.jsx20
-rw-r--r--web/react/stores/socket_store.jsx16
2 files changed, 26 insertions, 10 deletions
diff --git a/web/react/stores/error_store.jsx b/web/react/stores/error_store.jsx
index 5afcefd12..6928b1e59 100644
--- a/web/react/stores/error_store.jsx
+++ b/web/react/stores/error_store.jsx
@@ -18,7 +18,6 @@ class ErrorStoreClass extends EventEmitter {
this.emitChange = this.emitChange.bind(this);
this.addChangeListener = this.addChangeListener.bind(this);
this.removeChangeListener = this.removeChangeListener.bind(this);
- this.handledError = this.handledError.bind(this);
this.getLastError = this.getLastError.bind(this);
this.storeLastError = this.storeLastError.bind(this);
}
@@ -35,10 +34,6 @@ class ErrorStoreClass extends EventEmitter {
this.removeListener(CHANGE_EVENT, callback);
}
- handledError() {
- BrowserStore.removeItem('last_error');
- }
-
getLastError() {
return BrowserStore.getItem('last_error');
}
@@ -47,8 +42,23 @@ class ErrorStoreClass extends EventEmitter {
BrowserStore.setItem('last_error', error);
}
+ getConnectionErrorCount() {
+ var count = BrowserStore.getItem('last_error_conn');
+
+ if (count == null) {
+ return 0;
+ }
+
+ return count;
+ }
+
+ setConnectionErrorCount(count) {
+ BrowserStore.setItem('last_error_conn', count);
+ }
+
clearLastError() {
BrowserStore.removeItem('last_error');
+ BrowserStore.removeItem('last_error_conn');
}
}
diff --git a/web/react/stores/socket_store.jsx b/web/react/stores/socket_store.jsx
index efb57e226..9b2b049b7 100644
--- a/web/react/stores/socket_store.jsx
+++ b/web/react/stores/socket_store.jsx
@@ -58,6 +58,10 @@ class SocketStoreClass extends EventEmitter {
if (this.failCount === 0) {
console.log('websocket connecting to ' + connUrl); //eslint-disable-line no-console
+ if (ErrorStore.getConnectionErrorCount() > 0) {
+ ErrorStore.setConnectionErrorCount(0);
+ ErrorStore.emitChange();
+ }
}
conn = new WebSocket(connUrl);
@@ -65,10 +69,8 @@ class SocketStoreClass extends EventEmitter {
if (this.failCount > 0) {
console.log('websocket re-established connection'); //eslint-disable-line no-console
- if (ErrorStore.getLastError()) {
- ErrorStore.storeLastError(null);
- ErrorStore.emitChange();
- }
+ ErrorStore.clearLastError();
+ ErrorStore.emitChange();
AsyncClient.getChannels();
AsyncClient.getPosts(ChannelStore.getCurrentId());
@@ -86,7 +88,11 @@ class SocketStoreClass extends EventEmitter {
this.failCount = this.failCount + 1;
- ErrorStore.storeLastError({connErrorCount: this.failCount, message: this.translations.socketError});
+ if (this.failCount > 7) {
+ ErrorStore.storeLastError({message: this.translations.socketError});
+ }
+
+ ErrorStore.setConnectionErrorCount(this.failCount);
ErrorStore.emitChange();
setTimeout(