blob: cbe542abb87e384f5e425348bd4147b904015bd1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
@using MatrixRoomUtils.Web.Classes.Constants
@using LibMatrix
@using LibMatrix.EventTypes.Spec.State
@using LibMatrix.Homeservers
@using LibMatrix.Responses
<details>
<summary>@roomType (@rooms.Count)</summary>
@foreach (var room in rooms) {
<div class="room-list-item">
<RoomListItem RoomInfo="@room" ShowOwnProfile="@(roomType == "Room")"></RoomListItem>
@* @if (RoomVersionDangerLevel(room) != 0 && *@
@* (room.StateEvents.FirstOrDefault(x=>x.Type == "m.room.power_levels")?.TypedContent is RoomPowerLevelEventContent powerLevels && powerLevels.UserHasPermission(Homeserver.UserId, "m.room.tombstone"))) { *@
@* <MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton Color="@(RoomVersionDangerLevel(room) == 2 ? "#ff0000" : "#ff8800")" href="@($"/Rooms/Create?Import={room.Room.RoomId}")">Upgrade room</MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton> *@
@* } *@
<LinkButton href="@($"/Rooms/{room.Room.RoomId}/Timeline")">View timeline</LinkButton>
<LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/View")">View state</LinkButton>
<LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/Edit")">Edit state</LinkButton>
@if (roomType == "Space") {
<RoomListSpace Space="@room"></RoomListSpace>
}
</div>
}
</details>
<br/>
@code {
[Parameter]
public KeyValuePair<string, List<RoomInfo>> Category { get; set; }
[Parameter]
public UserProfileResponse? GlobalProfile { get; set; }
[CascadingParameter]
public AuthenticatedHomeserverGeneric Homeserver { get; set; } = null!;
private string roomType => Category.Key;
private List<RoomInfo> rooms => Category.Value;
private int RoomVersionDangerLevel(RoomInfo room) {
var roomVersion = room.StateEvents.FirstOrDefault(x => x.Type == "m.room.create");
if (roomVersion is null) return 0;
return roomVersion.TypedContent is not RoomCreateEventContent roomVersionContent ? 0
: RoomConstants.DangerousRoomVersions.Contains(roomVersionContent.RoomVersion) ? 2
: roomVersionContent.RoomVersion != RoomConstants.RecommendedRoomVersion ? 1 : 0;
}
}
|