Put games table in a card, use loading indicator

This commit is contained in:
Pat Hartl 2023-03-03 17:34:50 -06:00
parent 7b6fd7cb0f
commit 68ec83f681

View file

@ -3,7 +3,9 @@
@inject GameService GameService @inject GameService GameService
@inject NavigationManager NavigationManager @inject NavigationManager NavigationManager
<Table TItem="Game" DataSource="@Games"> <Card Title="Games">
<Body>
<Table TItem="Game" DataSource="@Games" Loading="@Loading">
<Column TData="string"> <Column TData="string">
<Image Src="@GetIcon(context)" Height="32" Width="32" Preview="false"></Image> <Image Src="@GetIcon(context)" Height="32" Width="32" Preview="false"></Image>
</Column> </Column>
@ -19,24 +21,32 @@
@context.UpdatedBy?.UserName @context.UpdatedBy?.UserName
</PropertyColumn> </PropertyColumn>
<ActionColumn Title=""> <ActionColumn Title="">
<Space> <Space Style="display: flex; justify-content: end">
<SpaceItem> <SpaceItem>
<Button OnClick="() => Edit(context)">Edit</Button> <Button Type="@ButtonType.Text" Icon="@IconType.Outline.Edit" OnClick="() => Edit(context)" />
</SpaceItem> </SpaceItem>
</Space> </Space>
</ActionColumn> </ActionColumn>
</Table> </Table>
</Body>
</Card>
@code { @code {
IEnumerable<Game> Games { get; set; } = new List<Game>(); IEnumerable<Game> Games { get; set; } = new List<Game>();
private string Search { get; set; }
protected override async Task OnInitializedAsync() bool Loading = true;
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{ {
Games = GameService.Get().OrderBy(g => String.IsNullOrWhiteSpace(g.SortTitle) ? g.Title : g.SortTitle).ToList(); Games = GameService.Get().OrderBy(g => String.IsNullOrWhiteSpace(g.SortTitle) ? g.Title : g.SortTitle).ToList();
Loading = false;
StateHasChanged(); StateHasChanged();
} }
}
private string GetIcon(Game game) private string GetIcon(Game game)
{ {