You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
@inherits LayoutComponentBase; |
|
|
|
@inject IWebsiteService WebService; |
|
@implements IDisposable; |
|
|
|
@inject DatabaseContext Database; |
|
<div class="layoutContainer" @onclick="OnPageClicked"> |
|
@if (!WebService.IsLoaded()) { |
|
<LoadingComponent></LoadingComponent> |
|
} |
|
else { |
|
<div class="content"> |
|
@Body |
|
</div> |
|
<DesktopNavComponent WebSections=WebService.WebSectionModels |
|
WebPages=WebService.WebPageModels/> |
|
<TabletNavComponent WebSections=WebService.WebSectionModels |
|
WebPages=WebService.WebPageModels/> |
|
<MobileNavComponent WebSections=WebService.WebSectionModels |
|
WebPages=WebService.WebPageModels/> |
|
} |
|
</div> |
|
|
|
@code { |
|
bool NavOpen = true; |
|
|
|
void OnNavClicked(EventArgs eventArgs) { |
|
NavOpen = !NavOpen; |
|
} |
|
|
|
void OnPageClicked(EventArgs eventArgs) { |
|
NavOpen = false; |
|
} |
|
|
|
protected override void OnInitialized() { |
|
WebService.Subscribe(HasChanged); |
|
} |
|
|
|
protected override async Task OnInitializedAsync() { |
|
await WebService.Load(Database); |
|
} |
|
|
|
void IDisposable.Dispose() { |
|
WebService.Unsubscribe(HasChanged); |
|
} |
|
|
|
void HasChanged() { |
|
StateHasChanged(); |
|
} |
|
|
|
} |