diff options
Diffstat (limited to 'web/react/stores')
-rw-r--r-- | web/react/stores/error_store.jsx | 20 | ||||
-rw-r--r-- | web/react/stores/socket_store.jsx | 16 |
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( |