@using LANCommander.Launcher.Data.Models @using LANCommander.SDK.Services @namespace LANCommander.Launcher.UI.Components @inject GameClient GameClient @inject ILogger Logger
@if (CurrentGame != null) {
@if (CurrentGame.Media.Any(m => m.Type == SDK.Enums.MediaType.Logo)) {
@if (CurrentGame.Media.Any(m => m.Type == SDK.Enums.MediaType.Cover)) { } }
@code { [CascadingParameter] public required Models.ListItem CurrentItem { get; set; } Guid _currentId { get; set; } Game? CurrentGame { get; set; } SDK.Models.Game? RemoteGame { get; set; } protected override async Task OnParametersSetAsync() { if (CurrentItem.Key != _currentId) { // Selection has changed, either through list click or nav _currentId = CurrentItem.Key; CurrentGame = CurrentItem.DataItem as Game; try { RemoteGame = await GameClient.GetAsync(_currentId); } catch (Exception ex) { Logger.LogError(ex, "Could not load game {GameId} from server", _currentId); } await InvokeAsync(StateHasChanged); } } }