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.
98 lines
2.5 KiB
98 lines
2.5 KiB
@inherits LayoutComponentBase |
|
@inject ISearchService SearchService |
|
@inject IWebsiteService WebService |
|
@inject IDataCollectionService DataCollectionService |
|
@inject NavigationManager NavigationManager |
|
@using Services.Website |
|
@implements IDisposable |
|
|
|
<div class="pageContents"> |
|
<div class="layoutContainer"> |
|
@if (!WebService.IsLoaded()) |
|
{ |
|
<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/> |
|
|
|
|
|
<FooterComponent/> |
|
} |
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
@code { |
|
|
|
protected override void OnInitialized() |
|
{ |
|
base.OnInitialized(); |
|
WebService.Subscribe(HasChanged); |
|
|
|
CollectFirstPageLoaded(); |
|
} |
|
|
|
private void CollectFirstPageLoaded() |
|
{ |
|
var skipBaseUri = NavigationManager.Uri.Substring(NavigationManager.BaseUri.Length, |
|
NavigationManager.Uri.Length - NavigationManager.BaseUri.Length); |
|
var rootUrl = skipBaseUri.Split("/").First(); |
|
if (rootUrl.Trim().Equals("")) |
|
{ |
|
rootUrl = "home"; |
|
} |
|
|
|
DataCollectionService.SendEvent(DataCollectionKeys.FirstPage, |
|
new Dictionary<string, string> { { "page", rootUrl } }); |
|
} |
|
|
|
protected override async Task OnInitializedAsync() |
|
{ |
|
await WebService.Load(); |
|
|
|
await Focus(); |
|
} |
|
|
|
private async Task Focus() |
|
{ |
|
// await jsRuntime.InvokeVoidAsync("SetFocusToElement", pageContents); |
|
} |
|
|
|
protected override async void OnAfterRender(bool firstRender) |
|
{ |
|
// await jsRuntime.InvokeVoidAsync("SetFocusToElement", pageContents); |
|
} |
|
|
|
void IDisposable.Dispose() |
|
{ |
|
WebService.Unsubscribe(HasChanged); |
|
} |
|
|
|
void HasChanged() |
|
{ |
|
StateHasChanged(); |
|
} |
|
|
|
private void HandleKeyDown(KeyboardEventArgs keyboardEventArgs) |
|
{ |
|
if ((keyboardEventArgs.CtrlKey || keyboardEventArgs.MetaKey) && keyboardEventArgs.Key.ToLower() == "k") |
|
{ |
|
SearchService.Show(); |
|
} |
|
} |
|
|
|
|
|
} |