Set up Inventory page, let it take care of grid Items

pull/2/head
Alexis Drai 2 years ago
parent d15732f390
commit e4d482059c

@ -1,5 +1,4 @@
using blazor_lab.Services; using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components;
using Minecraft.Crafting.Api.Models; using Minecraft.Crafting.Api.Models;
@ -11,20 +10,12 @@ namespace blazor_lab.Components
[Parameter] [Parameter]
public List<InventoryModel> Inventory { get; set; } public List<InventoryModel> Inventory { get; set; }
public List<Models.Item> Items { get; set; } = new List<Models.Item>(); /// <summary>
/// Used by GetItemImageBase64 in this component, rather than calling our DataService every time.
[Inject] /// A very basic cache, not kept up to date in any way, but event listeners could be set up in the future
public IConfiguration Config { get; set; } /// </summary>
[Parameter]
public List<Models.Item> Items { get; set; }
[Inject]
private DataApiService dataApiService { get; set; }
protected override async Task OnInitializedAsync()
{
Items = await dataApiService.All();
}
public string GetItemImageBase64(string displayName) public string GetItemImageBase64(string displayName)
{ {

@ -2,6 +2,14 @@
@using Minecraft.Crafting.Api.Models @using Minecraft.Crafting.Api.Models
@using blazor_lab.Components @using blazor_lab.Components
<h1>Inventory</h1> <div class="side-by-side">
<div>
<h2>@Localizer["my_inventory"]</h2>
<InventoryGrid Inventory="Stuff" /> <InventoryGrid Inventory="FreshInventory" Items="Items" />
</div>
<div>
<h2>@Localizer["list_of_items"]</h2>
<InventoryList Items="Items" />
</div>
</div>

@ -1,9 +1,26 @@
using Minecraft.Crafting.Api.Models; using blazor_lab.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using Minecraft.Crafting.Api.Models;
using System.Diagnostics;
namespace blazor_lab.Pages namespace blazor_lab.Pages
{ {
public partial class Inventory public partial class Inventory
{ {
private List<InventoryModel> Stuff = Enumerable.Range(1, 18).Select(_ => new InventoryModel()).ToList(); private List<Models.Item> Items = new();
[Inject]
public IStringLocalizer<Inventory> Localizer { get; set; }
[Inject]
private DataApiService DataApiService { get; set; }
protected override async Task OnInitializedAsync()
{
Items = await DataApiService.All();
}
private List<InventoryModel> FreshInventory = Enumerable.Range(1, 18).Select(_ => new InventoryModel()).ToList();
} }
} }

@ -0,0 +1,4 @@
.side-by-side {
display: flex;
flex-direction: row;
}
Loading…
Cancel
Save