@inherits LayoutComponentBase; @inject IJSRuntime jsRuntime @inject ISearchService searchService @inject IWebsiteService webService; @implements IDisposable;
@if (!webService.IsLoaded()) { } else {
@Body
}
@code { protected override void OnInitialized() { webService.Subscribe(HasChanged); } 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(); } } }