@inject IJSRuntime JsRuntime @inject IKeyService KeyService @inject IImmortalSelectionService FilterService @inject IBuildOrderService BuildOrderService @inject IStorageService StorageService @using Services.Website @implements IDisposable @if (_entity != null) {
} @code { private EntityModel? _entity = default!; private string _viewType = EntityViewType.Detailed; protected override void OnInitialized() { base.OnInitialized(); KeyService.Subscribe(HandleClick); StorageService.Subscribe(RefreshDefaults); RefreshDefaults(); } void IDisposable.Dispose() { KeyService.Unsubscribe(HandleClick); StorageService.Unsubscribe(RefreshDefaults); } void RefreshDefaults() { _viewType = StorageService.GetValue(StorageKeys.IsPlainView) ? EntityViewType.Plain : EntityViewType.Detailed; } protected override bool ShouldRender() { #if DEBUG JsRuntime.InvokeVoidAsync("console.time", "EntityClickViewComponent"); #endif return true; } protected override void OnAfterRender(bool firstRender) { #if DEBUG JsRuntime.InvokeVoidAsync("console.timeEnd", "EntityClickViewComponent"); #endif } private void HandleClick() { var hotkey = KeyService.GetHotkey(); var hotkeyGroup = KeyService.GetHotkeyGroup(); var isHoldSpace = KeyService.IsHoldingSpace(); var faction = FilterService.GetFaction(); var immortal = FilterService.GetImmortal(); var foundEntity = EntityModel.GetFrom(hotkey!, hotkeyGroup, isHoldSpace, faction, immortal); if (foundEntity != null && _entity != foundEntity) { _entity = foundEntity; StateHasChanged(); } } }