bulletboards/ImageBoardServerApp/Shared/NavMenu.razor

69 lines
2.4 KiB
Text
Raw Normal View History

@using ImageBoardServerApp.Auth
@inject AuthenticationStateProvider authStateProvider
@inject NavigationManager navManager
<div class="top-row ps-3 navbar navbar-dark">
2023-01-18 12:56:24 +00:00
<div class="container-fluid">
<a class="navbar-brand" href="">ImageBoard</a>
<AuthorizeView>
<Authorized>
<a class="navbar-brand" @onclick="logout" href="javascript:void(0)">[Logout]</a>
</Authorized>
<NotAuthorized>
<a class="navbar-brand" href="/login">[Login]</a>
</NotAuthorized>
</AuthorizeView>
2023-01-18 12:56:24 +00:00
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="m">
<span class="oi oi-list-rich" aria-hidden="true"></span> /m/ - Main
2023-01-18 12:56:24 +00:00
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="tec">
<span class="oi oi-list-rich" aria-hidden="true"></span> /tec/ - Technology
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="art">
<span class="oi oi-list-rich" aria-hidden="true"></span> /art/ - Art
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="vg">
<span class="oi oi-list-rich" aria-hidden="true"></span> /vg/ - Video Games
</NavLink>
</div>
2023-01-18 12:56:24 +00:00
</nav>
</div>
@code {
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
private async Task logout()
{
var customAuthStateProvider = (CustomAuthenticationStateProvider) authStateProvider;
await customAuthStateProvider.UpdateAuthenticationStateAsync(null);
navManager.NavigateTo("/", true);
}
2023-01-18 12:56:24 +00:00
}