48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
|
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<string, string> ActiveNav { get; set; }
|
|||
|
public bool CollapsePanel { get; set; } = false;
|
|||
|
[Parameter]
|
|||
|
public string MenuActiveClass { get; set; }
|
|||
|
|
|||
|
[ParameterAttribute]
|
|||
|
public EventCallback<string> MenuActiveClassChanged { get; set; }
|
|||
|
|
|||
|
protected async override Task OnInitializedAsync()
|
|||
|
{
|
|||
|
ActiveNav = new Dictionary<string, string>
|
|||
|
{
|
|||
|
{ "nginx", null },
|
|||
|
{ "systemd", null },
|
|||
|
{ "dmesg", null }
|
|||
|
};
|
|||
|
await base.OnInitializedAsync();
|
|||
|
}
|
|||
|
|
|||
|
protected void SelectMenuItem(string menuItem)
|
|||
|
{
|
|||
|
foreach (var key in ActiveNav.Keys.ToArray())
|
|||
|
ActiveNav[key] = null;
|
|||
|
|
|||
|
ActiveNav[menuItem] = "pure-menu-selected";
|
|||
|
}
|
|||
|
|
|||
|
protected async Task ToggleMenu()
|
|||
|
{
|
|||
|
CollapsePanel = !CollapsePanel;
|
|||
|
MenuActiveClass = CollapsePanel ? "active" : null;
|
|||
|
|
|||
|
await MenuActiveClassChanged.InvokeAsync(MenuActiveClass);
|
|||
|
StateHasChanged();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|