Files
Shogi/Shogi/FrontEnd/Components/Pages/SearchPage.razor
2026-01-13 20:36:03 -06:00

58 lines
1.2 KiB
Plaintext

@page "/search"
@inject ShogiService Service
@inject NavigationManager Navigation
<main class="SearchPage PrimaryTheme">
<h3>Find Sessions</h3>
<div class="search-content">
<GameBrowser SelectedSession="selectedSession" OnSessionSelected="HandleSessionSelected" />
<aside class="preview-panel PrimaryTheme ThemeVariant--Contrast">
@if (selectedSession is not null)
{
@if (previewSession is not null)
{
<GameBoardPresentation Session="previewSession"
Perspective="WhichPlayer.Player1"
UseSideboard="true" />
}
else
{
<p>Loading preview...</p>
}
<div class="preview-actions">
<button @onclick="JoinGame">Join Game</button>
</div>
}
else
{
<p class="no-selection">Select a game to preview</p>
}
</aside>
</div>
</main>
@code {
private SessionMetadata? selectedSession;
private Session? previewSession;
private async Task HandleSessionSelected(SessionMetadata session)
{
selectedSession = session;
previewSession = null;
previewSession = await Service.GetSession(session.SessionId.ToString());
}
private void JoinGame()
{
if (selectedSession is not null)
{
Navigation.NavigateTo($"/play/{selectedSession.SessionId}");
}
}
}