< Summary

Class:MUNity.BlazorServer.Shared.Sidebar.MenuItem
Assembly:MUNity.BlazorServer
File(s):C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Shared\Sidebar\MenuItem.razor
Covered lines:0
Uncovered lines:41
Coverable lines:41
Total lines:79
Line coverage:0% (0 of 41)
Covered branches:0
Total branches:16
Branch coverage:0% (0 of 16)
Covered methods:0
Total methods:12
Method coverage:0% (0 of 12)

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
BuildRenderTree(...)0%100%
get_ChildContent()100%10%
get_Parent()100%10%
get_Title()100%10%
get_Url()100%10%
get_IconName()100%10%
get_Badge()100%10%
get_IsExpanded()100%10%
get_Children()100%10%
NavigateOrExpand()0%20%
AddSubItem(...)0%20%
OnInitialized()0%20%

File(s)

C:\Users\aeuke\source\repos\PeerConradi\munity\src\MUNity.BlazorServer\Shared\Sidebar\MenuItem.razor

#LineLine coverage
 1@inject NavigationManager navManager;
 2
 3<div class="menu-item @((Children.Any()) ? "has-sub" : null) @((IsExpanded) ? "active" : null)">
 4
 05    <a class="menu-link" style="cursor: pointer;" @onclick="() => NavigateOrExpand()">
 06        @if (!string.IsNullOrEmpty(this.IconName))
 07        {
 8            <div class="menu-icon">
 9                <i class="oi @IconName"></i>
 10            </div>
 011        }
 12
 13        <div class="menu-text">
 014            @Title
 015            @if (!string.IsNullOrEmpty(Badge))
 016            {
 017                <span class="menu-label">@Badge</span>
 018            }
 19        </div>
 020        @if (Children.Any())
 021        {
 22            <div class="menu-caret"></div>
 023        }
 24    </a>
 25    <div class="menu-submenu">
 26        <CascadingValue Value="this">
 027            @ChildContent
 28        </CascadingValue>
 29    </div>
 30
 31</div>
 32
 33
 34
 35@code {
 036    [Parameter] public RenderFragment ChildContent { get; set; }
 37
 038    [CascadingParameter] public MenuItem Parent { get; set; }
 39
 040    [Parameter] public string Title { get; set; }
 41
 042    [Parameter] public string Url { get; set; }
 43
 044    [Parameter] public string IconName { get; set; }
 45
 046    [Parameter] public string Badge{ get; set; }
 47
 048    public bool IsExpanded { get; set; }
 49
 050    private List<MenuItem> Children { get; set; } = new();
 51
 52    private void NavigateOrExpand()
 053    {
 054        if (Children.Any())
 055        {
 056            IsExpanded = !IsExpanded;
 057        }
 58        else
 059        {
 060            navManager.NavigateTo(Url);
 061        }
 062    }
 63
 64    public void AddSubItem(MenuItem item)
 065    {
 066        if (!Children.Contains(item))
 067        {
 068            Children.Add(item);
 069            this.StateHasChanged();
 070        }
 071    }
 72
 73    protected override void OnInitialized()
 074    {
 75
 076        if (Parent != null)
 077            Parent.AddSubItem(this);
 078    }
 79}