client: basic message parsing, gateway listening
2 files changed, 43 insertions, 8 deletions
diff --git a/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor b/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor
index ccc73abe4..e6c229628 100644
--- a/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor
+++ b/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor
@@ -14,14 +14,22 @@
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
</NavLink>
</div>
+ @foreach (var guild in App.ClientManager.ClientState.Guilds) {
+ <div class="nav-item px-3">
+ <NavLink class="nav-link" href="@($"/channels/{guild.Key}/{guild.Value.Channels.First(x => x.Type == 0).Id}")">
+ @{
+ var guildIconUrl = string.IsNullOrWhiteSpace(guild.Value.Icon)
+ ? "/img/icon_white.png"
+ : new Uri($"{App.ClientManager.Client?.ClientWellKnown.Cdn.BaseUrl}/icons/{guild.Key}/{guild.Value.Icon}").AbsoluteUri;
+ }
+ <img class="navGuildIcon" src="@guildIconUrl" alt="" aria-hidden="true">
+ @guild.Value.Name
+ </NavLink>
+ </div>
+ }
<div class="nav-item px-3">
- <NavLink class="nav-link" href="counter">
- <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter
- </NavLink>
- </div>
- <div class="nav-item px-3">
- <NavLink class="nav-link" href="weather">
- <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
+ <NavLink class="nav-link" href="/discovery/guilds">
+ <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Discover...
</NavLink>
</div>
</nav>
@@ -36,4 +44,8 @@
collapseNavMenu = !collapseNavMenu;
}
+ protected override async Task OnInitializedAsync() {
+ App.ClientManager.ClientState.Guilds.CollectionChanged += (_,_) => this.StateHasChanged();
+ }
+
}
\ No newline at end of file
diff --git a/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor.css b/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor.css
index 617b89cc8..3c280aa14 100644
--- a/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor.css
+++ b/extra/admin-api/Utilities/Spacebar.Client/Layout/NavMenu.razor.css
@@ -1,3 +1,26 @@
+.navGuildIcon {
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ object-fit: cover;
+ object-position: center;
+ image-rendering: high-quality;
+}
+
+a:hover > .navGuildIcon {
+ transition: 0.15s;
+ border-radius: 25%;
+}
+
+.nav-item > a.nav-link a {
+ text-overflow: fade;
+ text-wrap: nowrap;
+ padding-left: 0;
+ line-height: 1rem;
+}
+
+/* default CSS */
+
.navbar-toggler {
background-color: rgba(255, 255, 255, 0.1);
}
@@ -52,7 +75,7 @@
height: 3rem;
display: flex;
align-items: center;
- line-height: 3rem;
+ line-height: 1rem;
}
.nav-item ::deep a.active {
|