54 lines
1.7 KiB
Plaintext

@using PanoptesFrontend.Data;
@using PanoptesFrontend.Services;
@using System
@using System.Text.Json;
@inject IHttpService httpService
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">Panoptes</a>
<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">
@if (response != null)
{
@foreach (var module in response){
<div class="nav-item px-3">
<NavLink class="nav-link" href=@($"/module/{module.Name}") Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> @module.Name
</NavLink>
</div>
}
}
<div class="nav-item px-3">
<NavLink class="nav-link" href=module-config Match="NavLinkMatch.All">
<span class="oi oi-cog" aria-hidden="true"></span> Module config
</NavLink>
</div>
</nav>
</div>
@code {
public Module[] response;
protected override async Task OnInitializedAsync()
{
var panoptesHost = Environment.GetEnvironmentVariable("PANOPTESHOST");
response = await httpService.GetAsync<Module[]>($"http://{panoptesHost}/modules");
}
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
}