about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor')
-rw-r--r--MatrixRoomUtils.Web/Pages/RoomManager/RoomManagerSpace.razor71
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() {