about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Shared/RoomList.razor
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Web/Shared/RoomList.razor')
-rw-r--r--MatrixRoomUtils.Web/Shared/RoomList.razor97
1 files changed, 0 insertions, 97 deletions
diff --git a/MatrixRoomUtils.Web/Shared/RoomList.razor b/MatrixRoomUtils.Web/Shared/RoomList.razor
deleted file mode 100644

index 31f0430..0000000 --- a/MatrixRoomUtils.Web/Shared/RoomList.razor +++ /dev/null
@@ -1,97 +0,0 @@ -@using MatrixRoomUtils.Web.Shared.RoomListComponents; -@using LibMatrix -@using LibMatrix.Extensions -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State -@using System.Collections.ObjectModel -@using LibMatrix.Responses -@using MatrixRoomUtils.Abstractions -@using _Imports = MatrixRoomUtils.Web._Imports -@if (!StillFetching) { - <p>Fetching room details... @RoomsWithTypes.Sum(x => x.Value.Count) out of @Rooms.Count done!</p> - @foreach (var category in RoomsWithTypes.OrderBy(x => x.Value.Count)) { - <p>@category.Key (@category.Value.Count)</p> - } -} -else { - @foreach (var category in RoomsWithTypes.OrderBy(x => x.Value.Count)) { - <RoomListCategory Category="@category" GlobalProfile="@GlobalProfile"></RoomListCategory> - } -} - -@code { - - [Parameter] - public ObservableCollection<RoomInfo> Rooms { get; set; } - - [Parameter] - public UserProfileResponse? GlobalProfile { get; set; } - - [Parameter] - public bool StillFetching { get; set; } = true; - - [Parameter] - public EventCallback<bool> StillFetchingChanged { get; set; } - - private Dictionary<string, List<RoomInfo>> RoomsWithTypes => Rooms is null ? new() : Rooms.GroupBy(x => GetRoomTypeName(x.CreationEventContent?.Type)).ToDictionary(x => x.Key, x => x.ToList()); - - private bool hooked; - protected override async Task OnParametersSetAsync() { - var hs = await MRUStorage.GetCurrentSessionOrNavigate(); - if (hs is null) return; - if (!hooked) { - Rooms.CollectionChanged += (_, args) => { - foreach (RoomInfo item in args.NewItems) { - item.PropertyChanged += (_, args2) => { - // Console.WriteLine(args2); - - if (args2.PropertyName == nameof(item.CreationEventContent)) - StateHasChanged(); - }; - } - }; - hooked = true; - } - - // GlobalProfile ??= await hs.GetProfileAsync(hs.WhoAmI.UserId); - - await base.OnParametersSetAsync(); - } - - private string GetRoomTypeName(string? roomType) => roomType switch { - null => "Room", - "m.space" => "Space", - "msc3588.stories.stories-room" => "Story room", - "support.feline.policy.lists.msc.v1" => "MSC3784 Policy list (v1)", - _ => roomType - }; - - // private static SemaphoreSlim _semaphoreSlim = new(8, 8); - - // private async Task ProcessRoom(RoomInfo room) { - // await _semaphoreSlim.WaitAsync(); - // string roomType; - // try { - // var createEvent = (await room.GetStateEvent("m.room.create")).TypedContent as RoomCreateEventContent; - // roomType = GetRoomTypeName(createEvent.Type); - // - // if (roomType == "Room") { - // var mjolnirData = await room.GetStateEvent("org.matrix.mjolnir.shortcode"); - // if (mjolnirData?.RawContent?.ToJson(ignoreNull: true) is not null and not "{}") - // roomType = "Legacy policy room"; - // } - // } - // catch (MatrixException e) { - // roomType = $"Error: {e.ErrorCode}"; - // } - // - // // if (!RoomsWithTypes.ContainsKey(roomType)) { - // // RoomsWithTypes.Add(roomType, new List<RoomInfo>()); - // // } - // // RoomsWithTypes[roomType].Add(room); - // - // StateHasChanged(); - // _semaphoreSlim.Release(); - // } - -} \ No newline at end of file