about summary refs log tree commit diff
path: root/MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor')
-rw-r--r--MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor210
1 files changed, 0 insertions, 210 deletions
diff --git a/MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor b/MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor
deleted file mode 100644
index b163a52..0000000
--- a/MatrixUtils.Web/Pages/Rooms/Index2Components/RoomsIndex2MainTab.razor
+++ /dev/null
@@ -1,210 +0,0 @@
-@using MatrixUtils.Abstractions
-@using System.Security.Cryptography
-@using ArcaneLibs.Extensions
-@using System.ComponentModel
-@using System.Diagnostics
-@using LibMatrix.EventTypes.Spec.State
-@using MatrixUtils.Web.Pages.Rooms.Index2Components.MainTabComponents
-@using Microsoft.AspNetCore.Components.Rendering
-<h3>RoomsIndex2MainTab</h3>
-
-@* <div> *@
-@*     <div class="row"> *@
-@*         <div class="col-3" style="background-color: #ffffff66;"> *@
-@*             <LinkButton>Uncategorised rooms</LinkButton> *@
-@*             @foreach (var space in GetTopLevelSpaces()) { *@
-@*                 <a style="@("display:block; width: 100%; height: 50px; background-color: #" + RandomNumberGenerator.GetBytes(3).Append((byte)0x11).ToArray().AsHexString().Replace(" ", ""))"> *@
-@*                     <div style="vertical-align: middle;"> *@
-@*                         <div style="overflow:hidden; text-overflow: ellipsis; white-space: nowrap; ">@space.RoomName</div> *@
-@*                     </div> *@
-@*                 </a> *@
-@*             } *@
-@*         </div> *@
-@*         <div class="col-9" style="background-color: #ff00ff66;"> *@
-@*             <p>Placeholder for rooms list...</p> *@
-@*         </div> *@
-@*     </div> *@
-@* </div> *@
-
-<div>
-    <div class="row">
-        <div class="col-3" style="background-color: #ffffff22;">
-            <LinkButton>Uncategorised rooms</LinkButton>
-            @foreach (var space in GetTopLevelSpaces()) {
-                @* @RecursingSpaceChildren(space) *@
-                <MainTabSpaceItem Space="space" OpenedSpaces="OpenedSpaces" @bind-SelectedSpace="SelectedSpace" />
-            }
-        </div>
-        <div class="col-9" style="background-color: #ff00ff66;">
-            <p>Placeholder for rooms list...</p>
-            @if (SelectedSpace != null) {
-                foreach (var room in GetSpaceChildRooms(SelectedSpace)) {
-                    <p>@room.RoomName</p>
-                }
-            }
-        </div>
-    </div>
-</div>
-
-
-@code {
-
-    [CascadingParameter]
-    public Index2.RoomListViewData Data { get; set; } = null!;
-
-    protected override async Task OnInitializedAsync() {
-        Data.Rooms.CollectionChanged += (sender, args) => {
-            DebouncedStateHasChanged();
-            if (args.NewItems is { Count: > 0 })
-                foreach (var newItem in args.NewItems) {
-                    (newItem as RoomInfo).PropertyChanged += OnRoomListChanged;
-                    (newItem as RoomInfo).StateEvents.CollectionChanged += (sender, args) => { DebouncedStateHasChanged(); };
-                }
-        };
-        foreach (var newItem in Data.Rooms) {
-            newItem.PropertyChanged += OnRoomListChanged;
-            newItem.StateEvents.CollectionChanged += (sender, args) => { DebouncedStateHasChanged(); };
-        }
-
-        await base.OnInitializedAsync();
-        StateHasChanged();
-    }
-
-    private void OnRoomListChanged(object? sender, PropertyChangedEventArgs e) {
-        if (e.PropertyName == "RoomName" || e.PropertyName == "RoomType")
-            DebouncedStateHasChanged();
-    }
-
-    private CancellationTokenSource _debounceCts = new CancellationTokenSource();
-
-    private async Task DebouncedStateHasChanged() {
-        _debounceCts.Cancel();
-        _debounceCts = new CancellationTokenSource();
-        try {
-            Console.WriteLine("DebouncedStateHasChanged - Waiting 50ms...");
-            await Task.Delay(50, _debounceCts.Token);
-            Console.WriteLine("DebouncedStateHasChanged - Calling StateHasChanged!");
-            StateHasChanged();
-        }
-        catch (TaskCanceledException) { }
-    }
-
-    private List<RoomInfo> GetTopLevelSpaces() {
-        var spaces = Data.Rooms.Where(x => x.RoomType == "m.space").OrderBy(x => x.RoomName).ToList();
-        var allSpaceChildEvents = spaces.SelectMany(x => x.StateEvents.Where(y =>
-            y.Type == SpaceChildEventContent.EventId &&
-            y.RawContent!.Count > 0
-        )).ToList();
-
-        Console.WriteLine($"Child count: {allSpaceChildEvents.Count}");
-
-        spaces.RemoveAll(x => allSpaceChildEvents.Any(y => y.StateKey == x.Room.RoomId));
-
-        if (allSpaceChildEvents.Count == 0) {
-            Console.WriteLine("No space children found, returning nothing...");
-            return [];
-        }
-
-        return spaces.ToList();
-    }
-
-    private List<RoomInfo> GetSpaceChildren(RoomInfo space) {
-        var childEvents = space.StateEvents.Where(x =>
-            x.Type == SpaceChildEventContent.EventId &&
-            x.RawContent!.Count > 0
-        ).ToList();
-        var children = childEvents.Select(x => Data.Rooms.FirstOrDefault(y => y.Room.RoomId == x.StateKey)).Where(x => x is not null).ToList();
-        return children;
-    }
-
-    private List<RoomInfo> GetSpaceChildSpaces(RoomInfo space) {
-        var children = GetSpaceChildren(space);
-        var childSpaces = children.Where(x => x.RoomType == "m.space").ToList();
-        return childSpaces;
-    }
-    
-    private List<RoomInfo> GetSpaceChildRooms(RoomInfo space) {
-        var children = GetSpaceChildren(space);
-        var childRooms = children.Where(x => x.RoomType != "m.space").ToList();
-        return childRooms;
-    }
-
-    private RoomInfo? SelectedSpace { get; set; }
-    private List<RoomInfo> OpenedSpaces { get; set; } = new List<RoomInfo>();
-
-    // private RenderFragment RecursingSpaceChildren(RoomInfo space, List<RoomInfo>? parents = null, int depth = 0) {
-    //     parents ??= [];
-    //     var totalSw = Stopwatch.StartNew();
-    //     var children = GetSpaceChildSpaces(space);
-    //
-    //     var randomColor = RandomNumberGenerator.GetBytes(3).Append((byte)0x33).ToArray().AsHexString().Replace(" ", "");
-    //     var isExpanded = OpenedSpaces.Contains(space);
-    //
-    //     // Console.WriteLine($"RecursingSpaceChildren::FetchData - Depth: {depth}, Space: {space.RoomName}, Children: {children.Count} - {totalSw.Elapsed}");
-    //
-    //     // var renderSw = Stopwatch.StartNew();
-    //     var rf = new RenderFragment(builder => {
-    //         builder.OpenElement(0, "div");
-    //         //space list entry render fragment
-    //         // builder.AddContent(1, SpaceListEntry(space));
-    //         builder.OpenComponent<MainTabSpaceItem>(1);
-    //         builder.AddAttribute(2, "Space", space);
-    //         builder.AddAttribute(2, "OpenedSpaces", OpenedSpaces);
-    //         builder.CloseComponent();
-    //         builder.CloseElement();
-    //         //space children render fragment
-    //         if (isExpanded) {
-    //             builder.OpenElement(2, "div");
-    //             builder.AddAttribute(3, "style", "padding-left: 10px;");
-    //             foreach (var child in children) {
-    //                 builder.AddContent(4, RecursingSpaceChildren(child, parents.Append(space).ToList(), depth + 1));
-    //             }
-    //
-    //             builder.CloseElement();
-    //         }
-    //     });
-    //
-    //     // Console.WriteLine($"RecursingSpaceChildren::Render - Depth: {depth}, Space: {space.RoomName}, Children: {children.Count} - {renderSw.Elapsed}");
-    //     if (totalSw.ElapsedMilliseconds > 20)
-    //         Console.WriteLine($"RecursingSpaceChildren::Total - Depth: {depth}, Space: {space.RoomName}, Children: {children.Count} - {totalSw.Elapsed}");
-    //     // Console.WriteLine($"RecursingSpaceChildren::Total - Depth: {depth}, Space: {space.RoomName}, Children: {children.Count} - {totalSw.Elapsed}");
-    //     return rf;
-    // }
-
-    // private RenderFragment SpaceListEntry(RoomInfo space) {
-    //     return builder => {
-    //         {
-    //             builder.OpenElement(0, "div");
-    //             builder.AddAttribute(1, "style", "display: block; width: 100%; height: 50px;");
-    //             builder.AddAttribute(2, "onclick", EventCallback.Factory.Create(this, () => {
-    //                 if (OpenedSpaces.Contains(space)) {
-    //                     OpenedSpaces.Remove(space);
-    //                 }
-    //                 else {
-    //                     OpenedSpaces.Add(space);
-    //                 }
-    //
-    //                 StateHasChanged();
-    //             }));
-    //             {
-    //                 builder.OpenComponent<MxcImage>(5);
-    //                 builder.AddAttribute(6, "Homeserver", Data.Homeserver);
-    //                 builder.AddAttribute(7, "MxcUri", space.RoomIcon);
-    //                 builder.AddAttribute(8, "Circular", true);
-    //                 builder.AddAttribute(9, "Width", 32);
-    //                 builder.AddAttribute(10, "Height", 32);
-    //                 builder.CloseComponent();
-    //             }
-    //             {
-    //                 // room name, ellipsized
-    //                 builder.OpenElement(11, "span");
-    //                 builder.AddAttribute(12, "class", "spaceNameEllipsis");
-    //                 builder.AddContent(13, space.RoomName);
-    //                 builder.CloseElement();
-    //             }
-    //             builder.CloseElement();
-    //         }
-    //     };
-    // }
-
-}
\ No newline at end of file