@using Shogi.Contracts.Api @using Shogi.Contracts.Types; @using System.Text.RegularExpressions; @inject IShogiApi ShogiApi @inject AccountState Account; @inject PromotePrompt PromotePrompt; @if (session == null) { } else if (isSpectating) { } else { } @code { [Parameter] public string? SessionName { get; set; } Session? session; private WhichPlayer perspective; private bool isSpectating; protected override async Task OnParametersSetAsync() { await RefetchSession(); } async Task RefetchSession() { if (!string.IsNullOrWhiteSpace(SessionName)) { this.session = await ShogiApi.GetSession(SessionName); if (this.session != null) { var accountId = Account.User?.Id; this.perspective = accountId == session.Player2 ? WhichPlayer.Player2 : WhichPlayer.Player1; this.isSpectating = !(accountId == this.session.Player1 || accountId == this.session.Player2); Console.WriteLine($"IsSpectating - {isSpectating}. AccountId - {accountId}. Player1 - {this.session.Player1}. Player2 - {this.session.Player2}"); } } } }