Files
magman/MagMan.UI/Shared/MainLayout.razor
T
2023-12-28 12:19:09 +01:00

90 lines
2.0 KiB
Plaintext

@inherits LayoutComponentBase
@using MagMan.UI.Data
@using MagMan.UI.Components
@inject MessageService MessageService
@implements IDisposable
<PageTitle>MagMan.UI</PageTitle>
@* <div class="page">
<div class="sidebar">
<NavMenu />
</div>
<main>
<div class="top-row px-4">
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
</div>
<article class="content px-4">
@Body
</article>
</main>
</div> *@
<div class="page">
<div class="@sideClass">
@* <NavMenu EC_compressUpdated="@UpdateNavDisplay" /> *@
<NavMenu />
</div>
<CascadingValue Name="ShowSearch" Value=@ShowSearch>
<div class="main mr-1">
<div class="top-row">
<CmpTop></CmpTop>
</div>
<div class="content pt-1 pt-lg-2 mb-5 px-0 px-lg-2">
@Body
</div>
<div class="fixed-bottom bottom-row">
<CmpFooter></CmpFooter>
</div>
</div>
</CascadingValue>
</div>
@code {
bool ShowSearch { get; set; } = false;
protected override void OnInitialized()
{
MessageService.EA_ShowSearch += OnShowSearch;
MessageService.EA_HideSearch += OnHideSearch;
}
public void OnShowSearch()
{
ShowSearch = true;
InvokeAsync(() =>
{
StateHasChanged();
});
}
public void OnHideSearch()
{
ShowSearch = false;
InvokeAsync(() =>
{
StateHasChanged();
});
}
public void Dispose()
{
MessageService.EA_ShowSearch -= OnShowSearch;
MessageService.EA_ShowSearch -= OnHideSearch;
}
protected bool navLarge { get; set; } = true;
protected string sideClass { get; set; } = "sidebar";
protected void UpdateNavDisplay()
{
navLarge = !navLarge;
sideClass = navLarge ? "sidebar" : "sidebarSmall";
}
}