mirror of https://github.com/vector-im/riot-web
Show a warning if the user attempts to leave a room that is invite only
parent
a8320fe7e2
commit
5206c9d18b
|
@ -847,16 +847,36 @@ export default React.createClass({
|
||||||
}).close;
|
}).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((
|
||||||
|
<span className="warning" key="non_public_warning">
|
||||||
|
{ _t("This room is not public. You will not be able to rejoin without an invite.") }
|
||||||
|
</span>
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return warnings;
|
||||||
|
},
|
||||||
|
|
||||||
_leaveRoom: function(roomId) {
|
_leaveRoom: function(roomId) {
|
||||||
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
|
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
|
||||||
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||||
|
|
||||||
const roomToLeave = MatrixClientPeg.get().getRoom(roomId);
|
const roomToLeave = MatrixClientPeg.get().getRoom(roomId);
|
||||||
|
const warnings = this._leaveRoomWarnings(roomId);
|
||||||
|
|
||||||
Modal.createTrackedDialog('Leave room', '', QuestionDialog, {
|
Modal.createTrackedDialog('Leave room', '', QuestionDialog, {
|
||||||
title: _t("Leave room"),
|
title: _t("Leave room"),
|
||||||
description: (
|
description: (
|
||||||
<span>
|
<span>
|
||||||
{ _t("Are you sure you want to leave the room '%(roomName)s'?", {roomName: roomToLeave.name}) }
|
{ _t("Are you sure you want to leave the room '%(roomName)s'?", {roomName: roomToLeave.name}) }
|
||||||
|
{ warnings }
|
||||||
</span>
|
</span>
|
||||||
),
|
),
|
||||||
onFinished: (shouldLeave) => {
|
onFinished: (shouldLeave) => {
|
||||||
|
|
|
@ -979,5 +979,6 @@
|
||||||
"Which officially provided instance you are using, if any": "Which officially provided instance you are using, if any",
|
"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",
|
"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 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."
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue