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.
83 lines
2.1 KiB
83 lines
2.1 KiB
@inject IJSRuntime JsRuntime |
|
@inject IKeyService KeyService |
|
@inject IImmortalSelectionService FilterService |
|
@inject IBuildOrderService BuildOrderService |
|
@inject IStorageService StorageService |
|
|
|
@using Services.Website |
|
@implements IDisposable |
|
|
|
@if (_entity != null) |
|
{ |
|
<div class="entityClickView"> |
|
<CascadingValue Value="_entity"> |
|
<CascadingValue Value="@_viewType"> |
|
<EntityViewComponent></EntityViewComponent> |
|
</CascadingValue> |
|
</CascadingValue> |
|
</div> |
|
} |
|
<style> |
|
.entityClickView { |
|
overflow-y: scroll; width: 100%; overflow-x: hidden; height: 550px; |
|
} |
|
</style> |
|
|
|
@code { |
|
private EntityModel? _entity = default!; |
|
private string _viewType = EntityViewType.Detailed; |
|
|
|
protected override void OnInitialized() |
|
{ |
|
KeyService.Subscribe(HandleClick); |
|
StorageService.Subscribe(RefreshDefaults); |
|
|
|
RefreshDefaults(); |
|
} |
|
|
|
void IDisposable.Dispose() |
|
{ |
|
KeyService.Unsubscribe(HandleClick); |
|
|
|
StorageService.Unsubscribe(RefreshDefaults); |
|
} |
|
|
|
|
|
void RefreshDefaults() |
|
{ |
|
_viewType = StorageService.GetValue<bool>(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(); |
|
} |
|
} |
|
|
|
} |