KoogleApp/src/Koogle.Web/Components/Layout/NavMenu.razor

97 lines
3.1 KiB
Plaintext

@using Koogle.Web.Store.ClubState
@inherits FluxorComponent
@inject IState<AuthState> AuthState
@inject IState<ClubState> ClubState
@inject NavigationManager NavigationManager
<MudNavMenu>
@* Dashboard - visible to all authenticated users *@
<MudNavLink Href="/"
Match="NavLinkMatch.All"
Icon="@Icons.Material.Filled.Dashboard">
Dashboard
</MudNavLink>
@if (AuthState.Value.IsAuthenticated && HasSelectedClub)
{
@* Club-specific navigation - requires selected club *@
<MudNavLink Href="/days"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.CalendarMonth">
Spieltage
</MudNavLink>
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
{
<MudNavGroup Title="Stammdaten"
Icon="@Icons.Material.Filled.Settings"
Expanded="false">
<MudNavLink Href="/persons"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.Groups">
Personen
</MudNavLink>
<MudNavLink Href="/expenses"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.Receipt">
Strafen
</MudNavLink>
<MudNavLink Href="/expensetriggers"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.FlashOn">
Auslöser
</MudNavLink>
</MudNavGroup>
}
}
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin)
{
<MudDivider Class="my-2" />
<MudNavGroup Title="Administration"
Icon="@Icons.Material.Filled.AdminPanelSettings"
Expanded="false">
@if (AuthState.Value.IsSuperAdmin)
{
<MudNavLink Href="/admin/clubs"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.Business">
Vereine
</MudNavLink>
<MudNavLink Href="/admin/users"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.People">
Benutzer
</MudNavLink>
<MudNavLink Href="/admin/triggers"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.FlashOn">
Auslöser
</MudNavLink>
}
</MudNavGroup>
}
<MudDivider Class="my-2" />
@* Profile - visible to all authenticated users *@
@if (AuthState.Value.IsAuthenticated)
{
<MudNavLink Href="/account/profile"
Match="NavLinkMatch.Prefix"
Icon="@Icons.Material.Filled.Person">
Profil
</MudNavLink>
}
</MudNavMenu>
@code {
private bool HasSelectedClub => AuthState.Value.CurrentClub != null;
}