From adb1acba163a88052545e9cbff66bb870e612343 Mon Sep 17 00:00:00 2001 From: Thomas Chazot Date: Wed, 7 Dec 2022 10:15:40 +0100 Subject: [PATCH] Des changements --- BlazorApp/BlazorApp/BlazorApp.csproj | 3 + .../BlazorApp/Components/Crafting.razor.cs | 2 +- .../BlazorApp/Components/InventoryComp.razor | 53 +++++++++++++++++ .../Components/InventoryComp.razor.cs | 31 ++++++++++ .../Components/InventoryComp.razor.css | 14 +++++ .../BlazorApp/Components/InventoryItem.razor | 13 +++++ .../Components/InventoryItem.razor.cs | 58 +++++++++++++++++++ .../Components/InventoryItem.razor.css | 6 ++ .../Components/MyFirstChildComponent.razor | 14 ----- .../Components/MyRootComponent.razor | 16 ----- .../Components/MySecondChildComponent.razor | 14 ----- .../Components/TestRenderFragment.razor | 7 --- BlazorApp/BlazorApp/Pages/Inventory.razor | 38 +----------- BlazorApp/BlazorApp/Pages/Inventory.razor.cs | 1 - .../BlazorApp/Pages/InventoryPage.razor.cs | 32 ++++++++++ 15 files changed, 214 insertions(+), 88 deletions(-) create mode 100644 BlazorApp/BlazorApp/Components/InventoryComp.razor create mode 100644 BlazorApp/BlazorApp/Components/InventoryComp.razor.cs create mode 100644 BlazorApp/BlazorApp/Components/InventoryComp.razor.css create mode 100644 BlazorApp/BlazorApp/Components/InventoryItem.razor create mode 100644 BlazorApp/BlazorApp/Components/InventoryItem.razor.cs create mode 100644 BlazorApp/BlazorApp/Components/InventoryItem.razor.css delete mode 100644 BlazorApp/BlazorApp/Components/MyFirstChildComponent.razor delete mode 100644 BlazorApp/BlazorApp/Components/MyRootComponent.razor delete mode 100644 BlazorApp/BlazorApp/Components/MySecondChildComponent.razor delete mode 100644 BlazorApp/BlazorApp/Components/TestRenderFragment.razor create mode 100644 BlazorApp/BlazorApp/Pages/InventoryPage.razor.cs diff --git a/BlazorApp/BlazorApp/BlazorApp.csproj b/BlazorApp/BlazorApp/BlazorApp.csproj index 1bb76d0..c675d0d 100644 --- a/BlazorApp/BlazorApp/BlazorApp.csproj +++ b/BlazorApp/BlazorApp/BlazorApp.csproj @@ -45,4 +45,7 @@ Pages.List.resx + + + diff --git a/BlazorApp/BlazorApp/Components/Crafting.razor.cs b/BlazorApp/BlazorApp/Components/Crafting.razor.cs index f7578fc..a154730 100644 --- a/BlazorApp/BlazorApp/Components/Crafting.razor.cs +++ b/BlazorApp/BlazorApp/Components/Crafting.razor.cs @@ -15,7 +15,7 @@ namespace BlazorApp.Components { Actions = new ObservableCollection(); Actions.CollectionChanged += OnActionsCollectionChanged; - this.RecipeItems = new List { null, null, null, null, null, null, null, null, null }; + this.RecipeItems = new List { null, null, null, null, null, null, null, null, null}; } public ObservableCollection Actions { get; set; } diff --git a/BlazorApp/BlazorApp/Components/InventoryComp.razor b/BlazorApp/BlazorApp/Components/InventoryComp.razor new file mode 100644 index 0000000..d62a673 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryComp.razor @@ -0,0 +1,53 @@ + +
+
+
+ +
Inventory:
+
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
Available items:
+ +
+
+ + @foreach (var item in Items) + { + + } +
+ +
+ + +
+
+
+
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Components/InventoryComp.razor.cs b/BlazorApp/BlazorApp/Components/InventoryComp.razor.cs new file mode 100644 index 0000000..14773c6 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryComp.razor.cs @@ -0,0 +1,31 @@ +using System; +using BlazorApp.Models; +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; +using System.Collections.ObjectModel; +using System.Collections.Specialized; + +namespace BlazorApp.Components +{ + public partial class InventoryComp + { + + public Item CurrentDragItem { get; set; } + + [Parameter] + public List Items { get; set; } + + public List RecipeItems { get; set; } + + public InventoryComp() + { + this.RecipeItems = new List {}; + for (int i= 0; i<18; i++) + { + this.RecipeItems.Append(null); + } + } + + } +} + diff --git a/BlazorApp/BlazorApp/Components/InventoryComp.razor.css b/BlazorApp/BlazorApp/Components/InventoryComp.razor.css new file mode 100644 index 0000000..06bc1c9 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryComp.razor.css @@ -0,0 +1,14 @@ +.css-grid { + grid-template-columns: repeat(6,minmax(0,1fr)); + gap: 10px; + display: grid; + width: 40%; +} + + +.css-recipe { + grid-template-columns: repeat(3,minmax(0,1fr)); + gap: 10px; + display: grid; + width: 212px; +} diff --git a/BlazorApp/BlazorApp/Components/InventoryItem.razor b/BlazorApp/BlazorApp/Components/InventoryItem.razor new file mode 100644 index 0000000..e64e6cd --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryItem.razor @@ -0,0 +1,13 @@ +
+ + @if (Item != null) + { + @Item.DisplayName + } +
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Components/InventoryItem.razor.cs b/BlazorApp/BlazorApp/Components/InventoryItem.razor.cs new file mode 100644 index 0000000..cef8968 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryItem.razor.cs @@ -0,0 +1,58 @@ +using System; +using BlazorApp.Models; +using BlazorApp.Components; +using Microsoft.AspNetCore.Components; + +namespace BlazorApp.Components +{ + public partial class InventoryItem + { + [Parameter] + public int Index { get; set; } + + [Parameter] + public Item Item { get; set; } + + [Parameter] + public bool NoDrop { get; set; } + + [CascadingParameter] + public InventoryComp Parent { get; set; } + + internal void OnDragEnter() + { + if (NoDrop) + { + return; + } + + } + + internal void OnDragLeave() + { + if (NoDrop) + { + return; + } + + } + + internal void OnDrop() + { + if (NoDrop) + { + return; + } + + this.Item = Parent.CurrentDragItem; + Item tmp = Parent.RecipeItems[this.Index]; + Parent.RecipeItems[this.Index] = this.Item; + } + + private void OnDragStart() + { + Parent.CurrentDragItem = this.Item; + } + } +} + diff --git a/BlazorApp/BlazorApp/Components/InventoryItem.razor.css b/BlazorApp/BlazorApp/Components/InventoryItem.razor.css new file mode 100644 index 0000000..b2d4521 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/InventoryItem.razor.css @@ -0,0 +1,6 @@ +.item { + width: 64px; + height: 64px; + border: 1px solid; + overflow: hidden; +} diff --git a/BlazorApp/BlazorApp/Components/MyFirstChildComponent.razor b/BlazorApp/BlazorApp/Components/MyFirstChildComponent.razor deleted file mode 100644 index 592c4e4..0000000 --- a/BlazorApp/BlazorApp/Components/MyFirstChildComponent.razor +++ /dev/null @@ -1,14 +0,0 @@ -@code { - [Parameter] - public RenderFragment ChildContent { get; set; } - - [CascadingParameter] - public MyRootComponent RootComponent { get; set; } -} - -
- MyFirstChildComponent - @RootComponent.Text -
- @ChildContent -
-
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Components/MyRootComponent.razor b/BlazorApp/BlazorApp/Components/MyRootComponent.razor deleted file mode 100644 index 18895ba..0000000 --- a/BlazorApp/BlazorApp/Components/MyRootComponent.razor +++ /dev/null @@ -1,16 +0,0 @@ -@code { - [Parameter] - public RenderFragment ChildContent { get; set; } - - [Parameter] - public string Text { get; set; } -} - -
- MyRootComponent - @Text -
- - @ChildContent - -
-
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Components/MySecondChildComponent.razor b/BlazorApp/BlazorApp/Components/MySecondChildComponent.razor deleted file mode 100644 index 7d207e6..0000000 --- a/BlazorApp/BlazorApp/Components/MySecondChildComponent.razor +++ /dev/null @@ -1,14 +0,0 @@ -@code { - [Parameter] - public RenderFragment ChildContent { get; set; } - - [CascadingParameter] - public MyRootComponent RootComponent { get; set; } -} - -
- MySecondChildComponent - @RootComponent.Text -
- @ChildContent -
-
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Components/TestRenderFragment.razor b/BlazorApp/BlazorApp/Components/TestRenderFragment.razor deleted file mode 100644 index e8ca13f..0000000 --- a/BlazorApp/BlazorApp/Components/TestRenderFragment.razor +++ /dev/null @@ -1,7 +0,0 @@ -

TestRenderFragment

- -@code { - [Parameter] - public RenderFragment ChildContent { get; set; } -} - diff --git a/BlazorApp/BlazorApp/Pages/Inventory.razor b/BlazorApp/BlazorApp/Pages/Inventory.razor index 68cc6c8..40082a0 100644 --- a/BlazorApp/BlazorApp/Pages/Inventory.razor +++ b/BlazorApp/BlazorApp/Pages/Inventory.razor @@ -1,42 +1,10 @@ @page "/inventory" @using BlazorApp.Components; -

Inventory

- -
- - - - - - - - - - - - - - - - - - - +
+
-
- -
\ No newline at end of file + diff --git a/BlazorApp/BlazorApp/Pages/Inventory.razor.cs b/BlazorApp/BlazorApp/Pages/Inventory.razor.cs index 6c32433..fc4f0f5 100644 --- a/BlazorApp/BlazorApp/Pages/Inventory.razor.cs +++ b/BlazorApp/BlazorApp/Pages/Inventory.razor.cs @@ -23,7 +23,6 @@ namespace BlazorApp.Pages } Items = await DataService.List(0, await DataService.Count()); - StateHasChanged(); } } diff --git a/BlazorApp/BlazorApp/Pages/InventoryPage.razor.cs b/BlazorApp/BlazorApp/Pages/InventoryPage.razor.cs new file mode 100644 index 0000000..8f80632 --- /dev/null +++ b/BlazorApp/BlazorApp/Pages/InventoryPage.razor.cs @@ -0,0 +1,32 @@ +using System; +using BlazorApp.Components; +using BlazorApp.Models; +using BlazorApp.Services; +using Microsoft.AspNetCore.Components; + +namespace BlazorApp.Pages +{ + public partial class InventoryPage + { + [Inject] + public IDataService DataService { get; set; } + + public List Items { get; set; } = new List(); + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + base.OnAfterRenderAsync(firstRender); + + if (!firstRender) + { + return; + } + + Items = await DataService.List(0, await DataService.Count()); + Recipes = await DataService.GetRecipes(); + + StateHasChanged(); + } + } +} +