Files
YandexMusic/PlaylistShared/Components/Layout/NavMenu.razor
2026-04-11 15:41:24 +03:00

51 lines
1.8 KiB
Plaintext

@using Microsoft.AspNetCore.Components.Authorization
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">PlaylistShared</a>
</div>
</div>
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<nav class="nav flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Главная
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="myplaylists">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Мои плейлисты
</NavLink>
</div>
@if (user?.Identity?.IsAuthenticated == true)
{
<div class="nav-item px-3">
<NavLink class="nav-link" href="Logout">
<span class="bi bi-box-arrow-right"></span> Выйти
</NavLink>
</div>
}
else
{
<div class="nav-item px-3">
<NavLink class="nav-link" href="Login">
<span class="bi bi-box-arrow-in-right"></span> Войти
</NavLink>
</div>
}
</nav>
</div>
@code {
private AuthenticationState? _authState;
private ClaimsPrincipal? user => _authState?.User;
[CascadingParameter] private Task<AuthenticationState>? AuthenticationStateTask { get; set; }
protected override async Task OnInitializedAsync()
{
if (AuthenticationStateTask is not null)
_authState = await AuthenticationStateTask;
}
}