@inherits LayoutComponentBase @inject ISearchService SearchService @inject IWebsiteService WebService @inject IDataCollectionService DataCollectionService @inject NavigationManager NavigationManager @using Services.Website @implements IDisposable
@if (!WebService.IsLoaded()) { } else {
@Body
}
@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 { { "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(); } } }