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.
64 lines
1.3 KiB
64 lines
1.3 KiB
@inherits LayoutComponentBase; |
|
|
|
@inject IWebsiteService WebService; |
|
@implements IDisposable; |
|
|
|
<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 { |
|
|
|
#if NO_SQL |
|
|
|
#else |
|
[Inject] |
|
DatabaseContext Database { get; set; } |
|
#endif |
|
|
|
bool NavOpen = true; |
|
|
|
void OnPageClicked(EventArgs eventArgs) { |
|
NavOpen = false; |
|
} |
|
|
|
protected override void OnInitialized() { |
|
WebService.Subscribe(HasChanged); |
|
} |
|
|
|
protected override async Task OnInitializedAsync() { |
|
|
|
#if NO_SQL |
|
await WebService.Load(); |
|
#else |
|
await WebService.Load(Database); |
|
#endif |
|
|
|
} |
|
|
|
void IDisposable.Dispose() { |
|
WebService.Unsubscribe(HasChanged); |
|
} |
|
|
|
void HasChanged() { |
|
StateHasChanged(); |
|
} |
|
|
|
} |