2 files changed, 15 insertions, 9 deletions
diff --git a/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor b/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
index 1f5ce89..1ab0a1a 100644
--- a/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
+++ b/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
@@ -1,12 +1,12 @@
+@using LibMatrix.EventTypes.Spec.State.RoomInfo
@using MatrixUtils.Web.Classes.Constants
-@using LibMatrix.EventTypes.Spec.State
@using LibMatrix.Responses
@using MatrixUtils.Abstractions
<details open>
<summary>@RoomType (@Rooms.Count)</summary>
@foreach (var room in Rooms) {
<div class="room-list-item">
- <RoomListItem RoomInfo="@room" ShowOwnProfile="@(RoomType == "Room")"></RoomListItem>
+ <RoomListItem RoomInfo="@room" ShowOwnProfile="@(RoomType == "Room")" Homeserver="@Homeserver"/>
@* @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"))) { *@
@* <MatrixUtils.Web.Shared.SimpleComponents.LinkButton Color="@(RoomVersionDangerLevel(room) == 2 ? "#ff0000" : "#ff8800")" href="@($"/Rooms/Create?Import={room.Room.RoomId}")">Upgrade room</MatrixUtils.Web.Shared.SimpleComponents.LinkButton> *@
@@ -14,10 +14,11 @@
<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>
+ <LinkButton href="@($"/Rooms/{room.Room.RoomId}/Upgrade")" Color="#888800">Upgrade/replace room</LinkButton>
<LinkButton href="@($"/Tools/LeaveRoom?roomId={room.Room.RoomId}")" Color="#FF0000">Leave room</LinkButton>
@if (room.CreationEventContent?.Type == "m.space") {
- <RoomListSpace Space="@room"></RoomListSpace>
+ <RoomListSpace Space="@room" Homeserver="@Homeserver"/>
}
else if (room.CreationEventContent?.Type == "support.feline.policy.lists.msc.v1" || RoomType == "org.matrix.mjolnir.policy") {
<LinkButton href="@($"/Rooms/{room.Room.RoomId}/Policies")">Manage policies</LinkButton>
@@ -35,9 +36,9 @@
[Parameter]
public UserProfileResponse? GlobalProfile { get; set; }
- [CascadingParameter]
- public AuthenticatedHomeserverGeneric Homeserver { get; set; } = null!;
-
+ [Parameter]
+ public AuthenticatedHomeserverGeneric? Homeserver { get; set; }
+
private string RoomType => Category.Key;
private List<RoomInfo> Rooms => Category.Value;
diff --git a/MatrixUtils.Web/Shared/RoomListComponents/RoomListSpace.razor b/MatrixUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
index 6954990..27f0499 100644
--- a/MatrixUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
+++ b/MatrixUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
@@ -35,15 +35,18 @@
set => _breadcrumbs = value;
}
+ [Parameter]
+ public required AuthenticatedHomeserverGeneric Homeserver { get; set; }
+
private ObservableCollection<RoomInfo> Children { get; set; } = new();
private Collection<RoomInfo> Unjoined { get; set; } = new();
protected override async Task OnInitializedAsync() {
if (Breadcrumbs == null) throw new ArgumentNullException(nameof(Breadcrumbs));
+ if (Homeserver is null) throw new ArgumentNullException(nameof(Homeserver));
await Task.Delay(Random.Shared.Next(1000, 10000));
var rooms = Space.Room.AsSpace.GetChildrenAsync();
- var hs = await RMUStorage.GetCurrentSessionOrNavigate();
- var joinedRooms = await hs.GetJoinedRooms();
+ var joinedRooms = await Homeserver.GetJoinedRooms();
await foreach (var room in rooms) {
if (Breadcrumbs.Contains(room.RoomId)) continue;
var roomInfo = KnownRooms.FirstOrDefault(x => x.Room.RoomId == room.RoomId);
@@ -51,10 +54,12 @@
roomInfo = new RoomInfo(room);
KnownRooms.Add(roomInfo);
}
- if(joinedRooms.Any(x=>x.RoomId == room.RoomId))
+
+ if (joinedRooms.Any(x => x.RoomId == room.RoomId))
Children.Add(roomInfo);
else Unjoined.Add(roomInfo);
}
+
await base.OnInitializedAsync();
}
|