96 lines
3.0 KiB
Plaintext
96 lines
3.0 KiB
Plaintext
@inject AuthService Auth
|
|
@inject NetworkStatusService NetworkStatus
|
|
@implements IDisposable
|
|
|
|
<div class="top-row ps-3 pe-3 navbar navbar-dark">
|
|
<div class="container-fluid d-flex align-items-center justify-content-between p-0">
|
|
<a class="navbar-brand" href="">
|
|
<i class="bi bi-hourglass-split me-2 text-warning"></i> Chrono CCG
|
|
</a>
|
|
<div class="d-flex align-items-center gap-2">
|
|
<NetworkStatusChip/>
|
|
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu">
|
|
<nav class="nav flex-column">
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="home">
|
|
<i class="bi bi-house-door-fill nav-icon"></i> Home
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
|
<i class="bi bi-collection-fill nav-icon"></i> Cards
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="agents">
|
|
<i class="bi bi-people-fill nav-icon"></i> Agents
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="decks">
|
|
<i class="bi bi-journal-text nav-icon"></i> Decks
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="syndicates">
|
|
<i class="bi bi-diagram-2-fill nav-icon"></i> Syndicates
|
|
</NavLink>
|
|
</div>
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="docs">
|
|
<i class="bi bi-book-fill nav-icon"></i> Docs
|
|
</NavLink>
|
|
</div>
|
|
@if (NetworkStatus.IsOnline)
|
|
{
|
|
<div class="nav-item px-3">
|
|
<NavLink class="nav-link" href="login">
|
|
<i class="bi @(Auth.IsLoggedIn ? "bi-person-check-fill text-success" : "bi-person-fill text-warning") nav-icon"></i>
|
|
@(Auth.IsLoggedIn ? Auth.CurrentUsername : "Login")
|
|
</NavLink>
|
|
</div>
|
|
}
|
|
</nav>
|
|
</div>
|
|
|
|
@code {
|
|
private bool collapseNavMenu = true;
|
|
|
|
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
NetworkStatus.StatusChanged += OnStateChanged;
|
|
Auth.AuthStateChanged += OnStateChanged;
|
|
}
|
|
|
|
private void OnStateChanged(bool isOnline)
|
|
{
|
|
InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private void OnStateChanged()
|
|
{
|
|
InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private void ToggleNavMenu()
|
|
{
|
|
collapseNavMenu = !collapseNavMenu;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
NetworkStatus.StatusChanged -= OnStateChanged;
|
|
Auth.AuthStateChanged -= OnStateChanged;
|
|
}
|
|
|
|
}
|