mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 05:54:26 +01:00
23 lines
922 B
C#
23 lines
922 B
C#
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Microsoft.AspNetCore.Mvc.ViewFeatures;
|
|
using Microsoft.AspNetCore.Razor.TagHelpers;
|
|
|
|
namespace BTCPayServer.Abstractions.TagHelpers;
|
|
|
|
[HtmlTargetElement(Attributes = "[layout-menu-item]")]
|
|
public class LayoutMenuItemTagHelper : TagHelper
|
|
{
|
|
private const string ActivePageKey = "ActivePage";
|
|
private const string ActiveClass = "active";
|
|
[ViewContext]
|
|
public ViewContext ViewContext { get; set; }
|
|
public string LayoutMenuItem { get; set; }
|
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
|
{
|
|
output.Attributes.Add("id", $"menu-item-{LayoutMenuItem}");
|
|
var viewData = ViewContext.ViewData;
|
|
var match = viewData.ContainsKey(ActivePageKey) && viewData[ActivePageKey]?.ToString() == LayoutMenuItem;
|
|
output.Attributes.Add("class", $"menu-item nav-link {(match ? ActiveClass : "")}");
|
|
}
|
|
}
|