LANCommander/LANCommander.Server/UI/Components/MainMenu.razor
Pat Hartl 120e14d40c Add Tools section to server app
Allows users to upload additional tools and tie them to games. This can be useful for software like map editors, trainers, etc.
2026-02-08 02:24:53 -06:00

116 lines
No EOL
5.4 KiB
Text

@inherits LayoutComponentBase
@using System.Security.Claims;
@inject AuthenticationStateProvider AuthenticationStateProvider
<Menu Mode="MenuMode.Inline" Style="border-right: 0;">
@if (User?.Identity?.IsAuthenticated ?? false)
{
<SubMenu Title="Profile" Placement="Placement.BottomRight">
<TitleTemplate>
<Icon Type="@IconType.Outline.User"/>
<span>@User?.Identity.Name</span>
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/Profile">General</MenuItem>
<MenuItem RouterLink="/Profile/Library">Library</MenuItem>
<MenuItem RouterLink="/Profile/ConnectedAccounts">Connected Accounts</MenuItem>
<MenuItem RouterLink="/Profile/ChangePassword">Change Password</MenuItem>
<MenuItem RouterLink="/Profile/Saves">Saves</MenuItem>
<MenuItem RouterLink="/Logout">Logout</MenuItem>
</ChildContent>
</SubMenu>
<MenuDivider/>
}
<SubMenu>
<TitleTemplate>
<Icon Type="@IconType.Outline.Dashboard"/>
<span>Dashboards</span>
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/">Overview</MenuItem>
<MenuItem RouterLink="/Dashboard/SessionPlaytime">Average Session Playtime</MenuItem>
</ChildContent>
</SubMenu>
<MenuDivider/>
@if (User != null && User.IsInRole(RoleService.AdministratorRoleName))
{
<MenuItem RouterLink="/Games" Icon="@IconType.Outline.Appstore">Games</MenuItem>
<SubMenu>
<TitleTemplate>
<Icon Type="@IconType.Outline.Tags"/>
<span>Metadata</span>
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/Metadata/Collections">Collections</MenuItem>
<MenuItem RouterLink="/Metadata/Companies">Companies</MenuItem>
<MenuItem RouterLink="/Metadata/Engines">Engines</MenuItem>
<MenuItem RouterLink="/Metadata/Genres">Genres</MenuItem>
<MenuItem RouterLink="/Metadata/Platforms">Platforms</MenuItem>
<MenuItem RouterLink="/Metadata/Tags">Tags</MenuItem>
</ChildContent>
</SubMenu>
<MenuItem RouterLink="/Redistributables" Icon="@IconType.Outline.Block">Redistributables</MenuItem>
<MenuItem RouterLink="/Tools" Icon="@IconType.Outline.Tool">Tools</MenuItem>
<MenuItem RouterLink="/Servers" Icon="@IconType.Outline.Database">Servers</MenuItem>
<MenuDivider/>
<SubMenu>
<TitleTemplate>
<Icon Type="@IconType.Outline.Read"/>
<span>Pages</span>
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/Pages/Edit">Edit</MenuItem>
<MenuItem RouterLink="/Pages">View</MenuItem>
</ChildContent>
</SubMenu>
<MenuItem RouterLink="/Issues" Icon="@IconType.Outline.Bug">Issues</MenuItem>
<MenuItem RouterLink="/Files" Icon="@IconType.Outline.Folder">Files</MenuItem>
<SubMenu>
<TitleTemplate>
<Icon Type="@IconType.Outline.Setting"/>
<span>Settings</span>
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/Settings/General">General</MenuItem>
<MenuItem RouterLink="/Settings/Users">Users</MenuItem>
<MenuItem RouterLink="/Settings/Roles">Roles</MenuItem>
<MenuItem RouterLink="/Settings/Authentication">Authentication</MenuItem>
<MenuItem RouterLink="/Settings/Appearance">Appearance</MenuItem>
<MenuItem RouterLink="/Settings/UserSaves">User Saves</MenuItem>
<MenuItem RouterLink="/Settings/Library">Library</MenuItem>
<MenuItem RouterLink="/Settings/Archives">Archives</MenuItem>
<MenuItem RouterLink="/Settings/Media">Media</MenuItem>
<MenuItem RouterLink="/Settings/Scripts">Scripts</MenuItem>
<MenuItem RouterLink="/Settings/IPXRelay">IPX Relay</MenuItem>
<MenuItem RouterLink="/Settings/Servers">Servers</MenuItem>
<MenuItem RouterLink="/Settings/Beacon">Beacon</MenuItem>
<MenuItem RouterLink="/Settings/Tools">Tools</MenuItem>
<MenuItem RouterLink="/Settings/Logs">Logs</MenuItem>
<MenuItem RouterLink="/Settings/Launcher">Launcher</MenuItem>
<MenuItem RouterLink="/Settings/Updates">Updates</MenuItem>
<SubMenu Title="Integrations">
<MenuItem RouterLink="/Settings/Integrations/IGDB">IGDB</MenuItem>
<MenuItem RouterLink="/Settings/Integrations/Steam">Steam</MenuItem>
<MenuItem RouterLink="/Settings/Integrations/SteamGridDB">SteamGridDB</MenuItem>
</SubMenu>
<MenuItem RouterLink="/api">API</MenuItem>
</ChildContent>
</SubMenu>
}
else
{
<MenuItem RouterLink="/Pages" Icon="@IconType.Outline.Read">Pages</MenuItem>
}
</Menu>
@code {
ClaimsPrincipal User;
protected override async Task OnInitializedAsync()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
if (authState.User.Identity.IsAuthenticated)
User = authState.User;
}
}