diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index a5181b55a7..d6d0b00c84 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -847,16 +847,36 @@ export default React.createClass({
}).close;
},
+ _leaveRoomWarnings: function(roomId) {
+ const roomToLeave = MatrixClientPeg.get().getRoom(roomId);
+ // Show a warning if there are additional complications.
+ const joinRules = roomToLeave.currentState.getStateEvents('m.room.join_rules', '');
+ const warnings = [];
+ if (joinRules) {
+ const rule = joinRules.getContent().join_rule;
+ if (rule !== "public") {
+ warnings.push((
+
+ { _t("This room is not public. You will not be able to rejoin without an invite.") }
+
+ ));
+ }
+ }
+ return warnings;
+ },
+
_leaveRoom: function(roomId) {
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
-
const roomToLeave = MatrixClientPeg.get().getRoom(roomId);
+ const warnings = this._leaveRoomWarnings(roomId);
+
Modal.createTrackedDialog('Leave room', '', QuestionDialog, {
title: _t("Leave room"),
description: (
{ _t("Are you sure you want to leave the room '%(roomName)s'?", {roomName: roomToLeave.name}) }
+ { warnings }
),
onFinished: (shouldLeave) => {
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 73e3f3a014..7efc5ff38e 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -979,5 +979,6 @@
"Which officially provided instance you are using, if any": "Which officially provided instance you are using, if any",
"Whether or not you're using the Richtext mode of the Rich Text Editor": "Whether or not you're using the Richtext mode of the Rich Text Editor",
"Your homeserver's URL": "Your homeserver's URL",
- "Your identity server's URL": "Your identity server's URL"
+ "Your identity server's URL": "Your identity server's URL",
+ "This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite."
}