oqtane.framework/Oqtane.Client/Themes/Controls/Theme/Breadcrumbs.razor
2021-04-17 19:18:24 -04:00

41 lines
1.1 KiB
Plaintext

@namespace Oqtane.Themes.Controls
@inherits ThemeControlBase
@if (BreadCrumbPages.Any())
{
<span class="app-breadcrumbs">
<ol class="breadcrumb">
@foreach (var p in BreadCrumbPages)
{
if (p.PageId == PageState.Page.PageId)
{
<li class="breadcrumb-item active">
<a href="@NavigateUrl(p.Path)">@p.Name</a>
</li>
}
else
{
<li class="breadcrumb-item">
<a href="@NavigateUrl(p.Path)">@p.Name</a>
</li>
}
}
</ol>
</span>
}
@code {
protected IEnumerable<Page> BreadCrumbPages => GetBreadCrumbPages().Reverse().ToList();
private IEnumerable<Page> GetBreadCrumbPages()
{
var page = PageState.Page;
do
{
yield return page;
page = PageState.Pages.FirstOrDefault(p => page != null && p.PageId == page.ParentId);
} while (page != null);
}
}