1
0
mirror of https://github.com/element-hq/element-web.git synced 2025-08-08 03:42:14 +03:00

Render reason for invite rejection. (#29257)

* Render reason for invite rejection.

* Add test

* extra test
This commit is contained in:
Will Hunt
2025-02-14 10:58:20 +00:00
committed by GitHub
parent f9a85d37fa
commit c47ce59478
3 changed files with 48 additions and 1 deletions

View File

@@ -191,7 +191,10 @@ function textForMemberEvent(
case KnownMembership.Leave:
if (ev.getSender() === ev.getStateKey()) {
if (prevContent.membership === KnownMembership.Invite) {
return () => _t("timeline|m.room.member|reject_invite", { targetName });
return () =>
reason
? _t("timeline|m.room.member|reject_invite_reason", { targetName, reason })
: _t("timeline|m.room.member|reject_invite", { targetName });
} else {
return () =>
reason

View File

@@ -3458,6 +3458,7 @@
"left_reason": "%(targetName)s left the room: %(reason)s",
"no_change": "%(senderName)s made no change",
"reject_invite": "%(targetName)s rejected the invitation",
"reject_invite_reason": "%(targetName)s rejected the invitation: %(reason)s",
"remove_avatar": "%(senderName)s removed their profile picture",
"remove_name": "%(senderName)s removed their display name (%(oldDisplayName)s)",
"set_avatar": "%(senderName)s set a profile picture",

View File

@@ -519,6 +519,49 @@ describe("TextForEvent", () => {
),
).toMatchInlineSnapshot(`"Andy changed their display name and profile picture"`);
});
it("should handle rejected invites", () => {
expect(
textForEvent(
new MatrixEvent({
type: "m.room.member",
sender: "@a:foo",
content: {
membership: KnownMembership.Leave,
},
unsigned: {
prev_content: {
membership: KnownMembership.Invite,
},
},
state_key: "@a:foo",
}),
mockClient,
),
).toMatchInlineSnapshot(`"Member rejected the invitation"`);
});
it("should handle rejected invites with a reason", () => {
expect(
textForEvent(
new MatrixEvent({
type: "m.room.member",
sender: "@a:foo",
content: {
membership: KnownMembership.Leave,
reason: "I don't want to be in this room.",
},
unsigned: {
prev_content: {
membership: KnownMembership.Invite,
},
},
state_key: "@a:foo",
}),
mockClient,
),
).toMatchInlineSnapshot(`"Member rejected the invitation: I don't want to be in this room."`);
});
});
describe("textForJoinRulesEvent()", () => {