aboutsummaryrefslogtreecommitdiff
path: root/diplomacy/web/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'diplomacy/web/src/gui')
-rw-r--r--diplomacy/web/src/gui/core/page.jsx13
-rw-r--r--diplomacy/web/src/gui/diplomacy/contents/content_connection.jsx3
2 files changed, 11 insertions, 5 deletions
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.
diff --git a/diplomacy/web/src/gui/diplomacy/contents/content_connection.jsx b/diplomacy/web/src/gui/diplomacy/contents/content_connection.jsx
index 8c952a4..5947e01 100644
--- a/diplomacy/web/src/gui/diplomacy/contents/content_connection.jsx
+++ b/diplomacy/web/src/gui/diplomacy/contents/content_connection.jsx
@@ -39,6 +39,7 @@ export class ContentConnection extends React.Component {
this.connection.currentConnectionProcessing.stop();
}
this.connection = new Connection(data.hostname, data.port, window.location.protocol.toLowerCase() === 'https:');
+ this.connection.onReconnectionError = page.onReconnectionError;
// Page is passed as logger object (with methods info(), error(), success()) when connecting.
this.connection.connect(page)
.then(() => {
@@ -97,4 +98,4 @@ export class ContentConnection extends React.Component {
}
}
-ContentConnection.contextType = PageContext; \ No newline at end of file
+ContentConnection.contextType = PageContext;