TourIAm/TIAMSharedUI/Shared/Components/Navbar.razor

156 lines
6.7 KiB
Plaintext

@using TIAMSharedUI.Pages.Components
@using TIAMWebApp.Shared.Application.Interfaces
@using AyCode.Interfaces.StorageHandlers
@using Microsoft.Extensions.Localization
@using Microsoft.AspNetCore.Components.Authorization
<nav class="navbar sticky-top navbar-expand-lg px-2">
<div class="container-fluid">
<NavLink class="navbar-brand" href="/">
<img height="25" src="_content/TIAMSharedUI/images/logo_wide.png" alt="TourIam Logo" title="TourIAm Logo" />
</NavLink>
<button @onclick="ToggleNavMenu" class="navbar-toggler">
<img src="_content/TIAMSharedUI/images/navbar-toggler.png" width="40" />
</button>
<div class="@NavMenuCssClass navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<NavLink class="nav-link" href="/">
@localizer.GetString("NavMenu.Home")
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="transfer">
@localizer.GetString("NavMenu.Transfer")
</NavLink>
</li>
@if (isDevAdmin)
{
<li class="nav-item">
<NavLink class="nav-link" href="swagger">
API
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="chat">
Chat
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="events">
@localizer.GetString("NavMenu.Events")
</NavLink>
</li>
}
<li class="nav-item">
<NavLink class="nav-link" href="about">
@localizer.GetString("NavMenu.About")
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="roadmap">
@localizer.GetString("NavMenu.Roadmap")
</NavLink>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
@if (enableLogin)
{
<AuthorizeView>
<NotAuthorized>
<li class="nav-item">
<NavLink class="nav-link" href="login">
@localizer.GetString("NavMenu.Login")
</NavLink>
</li>
</NotAuthorized>
<Authorized>
<li class="nav-item">
@{
string url3 = $"user/messages/{userId}";
<NavLink class="nav-link" href="@url3">
<i class="fa-solid fa-envelope">@(" (" + SiteViewModel.UnreadMessagesCount + ")")</i>
</NavLink>
}
</li>
<!-- User Icon with Dropdown Menu -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fa-solid fa-user"></i>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
<div class="w-100 user-profile p-3">
<div class="flex-column align-items-center justify-content-center">
<div class="logo-container d-flex align-items-center justify-content-center">
<div class="menu-icon-large">
<i class="fa-solid fa-user"></i>
</div>
</div>
<div class="user-name-container bm-3 mb-2">
<div class="tm-8 text-center">@userEmail</div>
<div class="text-center">@userFullName</div>
</div>
<div class="d-flex justify-content-center p-1">
<DxButton Text="Manage account" RenderStyle="@ButtonRenderStyle.Secondary" Click="NavToAcc"></DxButton>
</div>
<div class="d-flex justify-content-center p-1">
<DxButton Text="My transfers" RenderStyle="@ButtonRenderStyle.Secondary" Click="NavToTransfers"></DxButton>
</div>
<div class="d-flex justify-content-center p-1">
<DxButton Text="@localizer.GetString("NavMenu.SignOut")" RenderStyle="@ButtonRenderStyle.Secondary" Click="SignOut"></DxButton>
</div>
</div>
</div>
</ul>
</li>
@if (hasProperty || isSysAdmin || isDevAdmin)
{
<li class="nav-item">
<NavLink class="nav-link" href="user/admin">
@localizer.GetString("NavMenu.Admin")
</NavLink>
</li>
}
</Authorized>
</AuthorizeView>
@if (enableLanguage)
{
<li class="nav-item">
<NavLink class="nav-link" href="settings">
<i class="fa-solid fa-gear"></i>
</NavLink>
</li>
}
}
</ul>
</div>
</div>
</nav>
@code {
}