@page "/RoomManager/Space/{RoomId}" @using MatrixRoomUtils.Core.Extensions @using System.Text.Json

Room manager - Viewing Space

@foreach (var room in Rooms) { }
State list @foreach (var stateEvent in States.OrderBy(x => x.state_key).ThenBy(x => x.type)) {

@stateEvent.state_key/@stateEvent.type:

@stateEvent.content.ToJson()
}
@code { [Parameter] public string RoomId { get; set; } = "invalid!!!!!!"; private Room? Room { get; set; } private StateEvent[] States { get; set; } = Array.Empty>(); private List Rooms { get; set; } = 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[]>()!; foreach (var stateEvent in States) { if (stateEvent.type == "m.space.child") { // if (stateEvent.content.ToJson().Length < 5) return; var roomId = stateEvent.state_key; var room = await RuntimeCache.CurrentHomeServer.GetRoom(roomId); if (room != null) { Rooms.Add(room); } } } // if(state.Value.TryGetProperty("type", out var type)) // { // } // else // { // //this is fine, apprently... // //Console.WriteLine($"Room {room.RoomId} has no content.type in m.room.create!"); // } } await base.OnInitializedAsync(); } private async Task JoinAllRooms() { foreach (var room in Rooms) { room.JoinAsync(); } } }