1 files changed, 46 insertions, 25 deletions
diff --git a/MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor b/MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor
index a9c71c4..afa39b9 100644
--- a/MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor
+++ b/MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor
@@ -14,7 +14,7 @@
<summary style="background: #fff1;">State list</summary>
@foreach (var stateEvent in States.OrderBy(x => x.StateKey).ThenBy(x => x.Type)) {
<p>@stateEvent.StateKey/@stateEvent.Type:</p>
- <pre>@stateEvent.Content.ToJson()</pre>
+ <pre>@stateEvent.RawContent.ToJson()</pre>
}
</details>
@@ -23,36 +23,57 @@
[Parameter]
public string RoomId { get; set; } = "invalid!!!!!!";
- private Room? Room { get; set; }
+ private GenericRoom? Room { get; set; }
- private StateEventResponse<object>[] States { get; set; } = Array.Empty<StateEventResponse<object>>();
- private List<Room> Rooms { get; } = new();
+ private StateEventResponse[] States { get; set; } = Array.Empty<StateEventResponse>();
+ private List<GenericRoom> Rooms { get; } = new();
private List<string> ServersInSpace { get; } = new();
protected override async Task OnInitializedAsync() {
- await LocalStorageWrapper.LoadFromLocalStorage(LocalStorage);
- Room = await RuntimeCache.CurrentHomeServer.GetRoom(RoomId.Replace('~', '.'));
- var state = await Room.GetStateAsync("");
- if (state != null) {
- // Console.WriteLine(state.Value.ToJson());
- States = state.Value.Deserialize<StateEventResponse<object>[]>()!;
+ var hs = await MRUStorage.GetCurrentSessionOrNavigate();
+ if (hs is null) return;
- foreach (var stateEvent in States) {
- if (stateEvent.Type == "m.space.child") {
- // if (stateEvent.Content.ToJson().Length < 5) return;
- var roomId = stateEvent.StateKey;
- var room = await RuntimeCache.CurrentHomeServer.GetRoom(roomId);
- if (room != null) {
- Rooms.Add(room);
- }
+ Room = await hs.GetRoom(RoomId.Replace('~', '.'));
+
+ var state = Room.GetFullStateAsync();
+ await foreach (var stateEvent in state) {
+ if (stateEvent.Type == "m.space.child") {
+ var roomId = stateEvent.StateKey;
+ var room = await hs.GetRoom(roomId);
+ if (room is not null) {
+ Rooms.Add(room);
}
- else if (stateEvent.Type == "m.room.member") {
- var serverName = stateEvent.StateKey.Split(':').Last();
- if (!ServersInSpace.Contains(serverName)) {
- ServersInSpace.Add(serverName);
- }
+ }
+ else if (stateEvent.Type == "m.room.member") {
+ var serverName = stateEvent.StateKey.Split(':').Last();
+ if (!ServersInSpace.Contains(serverName)) {
+ ServersInSpace.Add(serverName);
}
}
+ }
+ await base.OnInitializedAsync();
+
+ // var state = await Room.GetStateAsync("");
+ // if (state is not null) {
+ // // Console.WriteLine(state.Value.ToJson());
+ // States = state.Value.Deserialize<StateEventResponse[]>()!;
+ //
+ // foreach (var stateEvent in States) {
+ // if (stateEvent.Type == "m.space.child") {
+ // // if (stateEvent.Content.ToJson().Length < 5) return;
+ // var roomId = stateEvent.StateKey;
+ // var room = await hs.GetRoom(roomId);
+ // if (room is not null) {
+ // Rooms.Add(room);
+ // }
+ // }
+ // else if (stateEvent.Type == "m.room.member") {
+ // var serverName = stateEvent.StateKey.Split(':').Last();
+ // if (!ServersInSpace.Contains(serverName)) {
+ // ServersInSpace.Add(serverName);
+ // }
+ // }
+ // }
// if(state.Value.TryGetProperty("Type", out var Type))
// {
@@ -62,8 +83,8 @@
// //this is fine, apprently...
// //Console.WriteLine($"Room {room.RoomId} has no Content.Type in m.room.create!");
// }
- }
- await base.OnInitializedAsync();
+
+ // await base.OnInitializedAsync();
}
private async Task JoinAllRooms() {
|