Organise tools somewhat, set proper icons for nav menu
2 files changed, 85 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
diff --git a/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor.css b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor.css
new file mode 100644
index 0000000..d6e413f
--- /dev/null
+++ b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2Components/MainTabComponents/MainTabSpaceItem.razor.css
@@ -0,0 +1,29 @@
+.spaceNameEllipsis {
+ padding-left: 8px;
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ vertical-align: middle;
+ width: calc(100% - 64px);
+}
+
+.spaceListItem {
+ display: block;
+ width: 100%;
+ height: 3em;
+}
+
+.spaceListItemContainer {
+ display: flex;
+ align-items: center;
+ vertical-align: center;
+ justify-content: space-between;
+ padding: 0 16px;
+ width: 100%;
+ height: 100%;
+}
+
+.spaceListItem > img {
+ display: inline-block;
+}
\ No newline at end of file
|