From ddfbf03b4175fa1bcc9efc9aa3154f19c7ad774a Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Tue, 15 Sep 2020 11:46:43 +0200
Subject: [PATCH] update: authfail plugin

---
 package.json           |  8 ++++----
 src/solid-xmpp-chat.js | 15 ++++++++++++++-
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/package.json b/package.json
index 9fb603c..5a204aa 100644
--- a/package.json
+++ b/package.json
@@ -57,14 +57,14 @@
   "scripts": {
     "build": "run-p copy:* build:*",
     "build:css": "node build-scss.js",
-    "build:js": "babel 'src/*.js' --out-dir 'dist/'",
-    "build:plugins": "babel 'src/plugins/*.js' --out-dir 'dist/plugins/'",
+    "build:js": "babel \"src/*.js\" --out-dir dist/",
+    "build:plugins": "babel \"src/plugins/*.js\" --out-dir dist/plugins/",
     "copy:image": "copyfiles -u 2 src/assets/* dist/assets && copyfiles -u 2 src/assets/**/* dist/assets",
     "copy:conversejs": "copyfiles -u 2 src/conversejs/* dist/conversejs && copyfiles -u 2 src/conversejs/**/**/* dist/conversejs && copyfiles -u 2 src/conversejs/**/* dist/conversejs",
     "watch": "run-p copy:* watch:*",
     "watch:css": "npm run build:css && npm run build:css -- -w",
-    "watch:js": "babel --watch 'src/*.js' --out-dir 'dist/'",
-    "watch:plugins": "babel --watch 'src/plugins/*.js' --out-dir 'dist/plugins/'"
+    "watch:js": "babel --watch \"src/*.js\" --out-dir dist/",
+    "watch:plugins": "babel --watch \"src/plugins/*.js\" --out-dir dist/plugins/"
   },
   "devDependencies": {}
 }
diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js
index 8ba4fb7..264f6bb 100644
--- a/src/solid-xmpp-chat.js
+++ b/src/solid-xmpp-chat.js
@@ -144,6 +144,19 @@ export const SolidXMPPChat = {
       }
     });
 
+    // Initialize AUTHFAIL plugin
+    converse.plugins.add('conversejs-sib-disconnected', {
+      initialize() {
+        this._converse.api.listen.on('disconnected', () => {
+          if(this._converse.disconnection_cause === converse.env.Strophe.Status.AUTHFAIL) {
+            Array.from(document.querySelectorAll('solid-xmpp-chat')).map(el => el.shadowRoot.innerHTML = 
+              `<div style='margin:3em;line-height:32px;'><b style='color:red;'>Erreur d'authentification au serveur de chat.</b><br /><i style='color:grey;'>Êtes-vous connecté à la même instance que celle de votre utilisateur ?</i></div>`
+            );
+          }
+        });
+      }
+    });
+
     // Initialize rai plugin
     converse.plugins.add('conversejs-rai', {
       async initialize() {
@@ -279,7 +292,7 @@ export const SolidXMPPChat = {
         fileupload: false,
         toggle_occupants: false
       },
-      'whitelisted_plugins': ['rai', 'conversejs-sib-connected', 'conversejs-sib-focused', 'conversejs-changechat', 'conversejs-rai'],
+      'whitelisted_plugins': ['rai', 'conversejs-sib-disconnected', 'conversejs-sib-connected', 'conversejs-sib-focused', 'conversejs-changechat', 'conversejs-rai'],
     });
 
     converse_sib.loaded_deferred.resolve();
-- 
GitLab