@page "/Tools/Moderation/MembershipHistory" @using System.Collections.ObjectModel @using LibMatrix @using LibMatrix.EventTypes.Spec.State
Show
Sender:
User:
@DateTimeOffset.FromUnixTimeMilliseconds(membership.OriginServerTs ?? 0).ToString("g") |
@switch (content.Membership) {
case RoomMemberEventContent.MembershipTypes.Invite: {
if (_showInvites) {
@membership.Sender invited @membership.StateKey @(string.IsNullOrWhiteSpace(content.Reason) ? "" : $"(reason: {content.Reason})") } break; } case RoomMemberEventContent.MembershipTypes.Ban: { if (_showBans) {@membership.Sender banned @membership.StateKey @(string.IsNullOrWhiteSpace(content.Reason) ? "" : $"(reason: {content.Reason})") } break; } case RoomMemberEventContent.MembershipTypes.Leave: { if (membership.Sender == membership.StateKey) { if (_showLeaves) {@membership.Sender left the room } } else { if (_showKicks) {@membership.Sender kicked @membership.StateKey @(string.IsNullOrWhiteSpace(content.Reason) ? "" : $"(reason: {content.Reason})") } } break; } case RoomMemberEventContent.MembershipTypes.Knock: { if (_showKnocks) {@membership.Sender knocked @membership.StateKey @(string.IsNullOrWhiteSpace(content.Reason) ? "" : $"(reason: {content.Reason})") } break; } case RoomMemberEventContent.MembershipTypes.Join: { if (previousContent is { Membership: RoomMemberEventContent.MembershipTypes.Join }) { if (_showUpdates) {
@membership.Sender changed their profile
@membership.Sender joined the room @(string.IsNullOrWhiteSpace(content.Reason) ? "" : $"(reason: {content.Reason})") |
@line}