From fbc808296da2682fe7495f8e0b3174da517ed5ef Mon Sep 17 00:00:00 2001
From: notoraptor <stevenbocco@gmail.com>
Date: Tue, 16 Jul 2019 11:10:28 -0400
Subject: Go back to connection page from any other page if re-connection
 failed after all attempts.

This should fix #16 .
---
 diplomacy/web/src/gui/core/page.jsx | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

(limited to 'diplomacy/web/src/gui/core')

diff --git a/diplomacy/web/src/gui/core/page.jsx b/diplomacy/web/src/gui/core/page.jsx
index 560252c..5e7aee2 100644
--- a/diplomacy/web/src/gui/core/page.jsx
+++ b/diplomacy/web/src/gui/core/page.jsx
@@ -59,6 +59,7 @@ export class Page extends React.Component {
         this._add_to_my_games = this._add_to_my_games.bind(this);
         this._remove_from_my_games = this._remove_from_my_games.bind(this);
         this._remove_from_games = this._remove_from_games.bind(this);
+        this.onReconnectionError = this.onReconnectionError.bind(this);
     }
 
     static wrapMessage(message) {
@@ -75,6 +76,10 @@ export class Page extends React.Component {
         return <ContentConnection/>;
     }
 
+    onReconnectionError(error) {
+        this.__disconnect(error);
+    }
+
     //// Methods to load a global fancybox.
 
     loadFancyBox(title, callback) {
@@ -124,18 +129,18 @@ export class Page extends React.Component {
 
     //// Methods to sign out channel and go back to connection page.
 
-    __disconnect() {
+    __disconnect(error) {
         // Clear local data and go back to connection page.
         this.connection.close();
         this.connection = null;
         this.channel = null;
         this.availableMaps = null;
-        const message = Page.wrapMessage(`Disconnected from channel and server.`);
+        const message = Page.wrapMessage(error ? `${error.toString()}` : `Disconnected from channel and server.`);
         Diplog.success(message);
         this.setState({
-            error: null,
+            error: error ? message : null,
             info: null,
-            success: message,
+            success: error ? null : message,
             name: null,
             body: null,
             // When disconnected, remove all games previously loaded.
-- 
cgit v1.2.3