about summary refs log tree commit diff
path: root/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-05-14 17:49:09 +0200
committerRory& <root@rory.gay>2024-05-14 17:49:09 +0200
commit41c5a84dacfd036b8d8f01f72226ac5a519995e3 (patch)
treea4bfc76541692cbbb0fc18f34463cf31a57440f5 /MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor
parentImprove the heatmap layout (diff)
downloadMatrixUtils-41c5a84dacfd036b8d8f01f72226ac5a519995e3.tar.xz
Organise tools somewhat, set proper icons for nav menu
Diffstat (limited to 'MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor')
-rw-r--r--MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor56
1 files changed, 56 insertions, 0 deletions
diff --git a/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor
new file mode 100644
index 0000000..6483f01
--- /dev/null
+++ b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor
@@ -0,0 +1,56 @@
+@using MatrixUtils.Abstractions
+<div class="spaceListItem" style="@(SelectedSpace == Space ? "background-color: #FFFFFF33;" : "")" onclick="@SelectSpace">
+    <div class="spaceListItemContainer">
+        @if (IsSpaceOpened()) {
+            <span onclick="@ToggleSpace">▼ </span>
+        }
+        else {
+            <span onclick="@ToggleSpace">▶ </span>
+        }
+
+        <MxcImage Circular="true" Height="32" Width="32" Homeserver="Space.Room.Homeserver" MxcUri="@Space.RoomIcon"></MxcImage>
+        <span class="spaceNameEllipsis">@Space.RoomName</span>
+    </div>
+    @if (IsSpaceOpened()) {
+        <span>meow</span>
+    }
+</div>
+
+@code {
+
+    [Parameter]
+    public RoomInfo Space { get; set; }
+
+    [Parameter]
+    public RoomInfo SelectedSpace { get; set; }
+
+    [Parameter]
+    public EventCallback<RoomInfo> SelectedSpaceChanged { get; set; }
+
+    [Parameter]
+    public List<RoomInfo> OpenedSpaces { get; set; }
+
+    protected override Task OnInitializedAsync() {
+        Space.PropertyChanged += (sender, args) => { StateHasChanged(); };
+        return base.OnInitializedAsync();
+    }
+
+    public void ToggleSpace() {
+        if (OpenedSpaces.Contains(Space)) {
+            OpenedSpaces.Remove(Space);
+        }
+        else {
+            OpenedSpaces.Add(Space);
+        }
+    }
+
+    public void SelectSpace() {
+        SelectedSpace = Space;
+        SelectedSpaceChanged.InvokeAsync(Space);
+    }
+
+    public bool IsSpaceOpened() {
+        return OpenedSpaces.Contains(Space);
+    }
+
+}
\ No newline at end of file