using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Seenginx.Shared { public class NavMenuBase : ComponentBase { protected Dictionary ActiveNav { get; set; } public bool CollapsePanel { get; set; } = false; [Parameter] public string MenuActiveClass { get; set; } [Parameter] public EventCallback MenuActiveClassChanged { get; set; } protected async override Task OnInitializedAsync() { ActiveNav = new Dictionary { { "nginx", null }, { "nginx/logs", null }, { "systemd", null }, { "systemd/logs", null }, { "dmesg", null } }; await base.OnInitializedAsync(); } protected void SelectMenuItem(string menuItem) { foreach (var key in ActiveNav.Keys.ToArray()) ActiveNav[key] = null; ActiveNav[menuItem] = "is-active"; } protected async Task ToggleMenu() { CollapsePanel = !CollapsePanel; MenuActiveClass = CollapsePanel ? "active" : null; await MenuActiveClassChanged.InvokeAsync(MenuActiveClass); StateHasChanged(); } } }