Working frontend update
All checks were successful
Game Ideas build for PR / build_test (pull_request) Successful in 43s
All checks were successful
Game Ideas build for PR / build_test (pull_request) Successful in 43s
This commit is contained in:
@@ -24,13 +24,13 @@
|
|||||||
<div class="input-game">
|
<div class="input-game">
|
||||||
<div class="label">@ResourcesKey.Developer :</div>
|
<div class="label">@ResourcesKey.Developer :</div>
|
||||||
<SelectSearch TItem="DeveloperDto" Theme="Theme" GetLabel="@(i => i.Name)" QuickAdd=true
|
<SelectSearch TItem="DeveloperDto" Theme="Theme" GetLabel="@(i => i.Name)" QuickAdd=true
|
||||||
Items="Categories?.Developers" ValuesChanged="HandleDeveloperChanged"
|
Items="Categories?.Developers" ValuesChanged="HandleDeveloperChanged" Values="@(GameDto.Developer != null ? [GameDto.Developer] : [])"
|
||||||
AddItem="@(str => new DeveloperDto() { Name = str })" SelectType="SelectType.Single" />
|
AddItem="@(str => new DeveloperDto() { Name = str })" SelectType="SelectType.Single" />
|
||||||
</div>
|
</div>
|
||||||
<div class="input-game">
|
<div class="input-game">
|
||||||
<div class="label">@ResourcesKey.Publisher :</div>
|
<div class="label">@ResourcesKey.Publisher :</div>
|
||||||
<SelectSearch TItem="PublisherDto" Theme="Theme" GetLabel="@(i => i.Name)" QuickAdd=true
|
<SelectSearch TItem="PublisherDto" Theme="Theme" GetLabel="@(i => i.Name)" QuickAdd=true
|
||||||
Items="Categories?.Publishers" ValuesChanged="HandlePublisherChanged"
|
Items="Categories?.Publishers" ValuesChanged="HandlePublisherChanged" Values="@(GameDto.Publisher != null ? [GameDto.Publisher] : [])"
|
||||||
AddItem="@(str => new PublisherDto() { Name = str })" SelectType="SelectType.Single" />
|
AddItem="@(str => new PublisherDto() { Name = str })" SelectType="SelectType.Single" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public partial class GameCreationForm
|
|||||||
[CascadingParameter] private Popup? Popup { get; set; }
|
[CascadingParameter] private Popup? Popup { get; set; }
|
||||||
[Parameter] public CategoriesDto? Categories { get; set; }
|
[Parameter] public CategoriesDto? Categories { get; set; }
|
||||||
[Parameter] public EventCallback OnSubmit { get; set; }
|
[Parameter] public EventCallback OnSubmit { get; set; }
|
||||||
[Parameter] public int? GameIdToUpdate { get; set; }
|
[Parameter] public EventCallback OnRender { get; set; }
|
||||||
|
|
||||||
private GameDetailDto GameDto = new();
|
private GameDetailDto GameDto = new();
|
||||||
private EditContext? EditContext;
|
private EditContext? EditContext;
|
||||||
@@ -32,14 +32,16 @@ public partial class GameCreationForm
|
|||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
EditContext = new(GameDto);
|
EditContext = new(GameDto);
|
||||||
IsLoading = GameIdToUpdate != null;
|
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||||
{
|
{
|
||||||
await Js.InvokeVoidAsync("resizeGameForm");
|
await Js.InvokeVoidAsync("resizeGameForm");
|
||||||
await SetGameToUpdate();
|
if (firstRender)
|
||||||
|
{
|
||||||
|
await OnRender.InvokeAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleOnCancel()
|
private void HandleOnCancel()
|
||||||
@@ -101,18 +103,13 @@ public partial class GameCreationForm
|
|||||||
GameDto.Developer = devs.FirstOrDefault();
|
GameDto.Developer = devs.FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SetGameToUpdate()
|
public async Task SetGameToUpdateAsync(int gameId)
|
||||||
{
|
{
|
||||||
if (GameIdToUpdate == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IsLoading = true;
|
IsLoading = true;
|
||||||
|
|
||||||
GameDto = await GameGateway.GetGameById(GameIdToUpdate ?? 0);
|
GameDto = await GameGateway.GetGameById(gameId);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
@@ -121,9 +118,9 @@ public partial class GameCreationForm
|
|||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
IsLoading = false;
|
IsLoading = false;
|
||||||
StateHasChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EditContext = new(GameDto);
|
EditContext = new(GameDto);
|
||||||
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Popup @ref=ManualAddPopup BackdropFilterClicked="HandleBackdropManualAddClicked" Closable=false>
|
<Popup @ref=ManualAddPopup BackdropFilterClicked="HandleBackdropManualAddClicked" Closable=false>
|
||||||
<GameCreationForm GameIdToUpdate="@GameIdToUpdate" Categories="Categories" OnSubmit="() => HandleFetchDatas()" />
|
<GameCreationForm @ref="CreationForm" Categories="Categories" OnSubmit="() => HandleFetchDatas()" OnRender="HandleRenderCreationForm" />
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
<Popup @ref=DeletePopup Closable=false>
|
<Popup @ref=DeletePopup Closable=false>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public partial class Games : GameBaseComponent
|
|||||||
private Popup? DeletePopup;
|
private Popup? DeletePopup;
|
||||||
private GameDto? GameToDelete;
|
private GameDto? GameToDelete;
|
||||||
private int? GameIdToUpdate;
|
private int? GameIdToUpdate;
|
||||||
|
private GameCreationForm? CreationForm;
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
@@ -101,4 +102,13 @@ public partial class Games : GameBaseComponent
|
|||||||
|
|
||||||
GameToDelete = null;
|
GameToDelete = null;
|
||||||
}
|
}
|
||||||
|
private async Task HandleRenderCreationForm()
|
||||||
|
{
|
||||||
|
if (GameIdToUpdate != null && CreationForm != null)
|
||||||
|
{
|
||||||
|
await CreationForm.SetGameToUpdateAsync(GameIdToUpdate ?? 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
GameIdToUpdate = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -27,9 +27,9 @@
|
|||||||
|
|
||||||
@if (Params.Headers != null)
|
@if (Params.Headers != null)
|
||||||
{
|
{
|
||||||
@foreach (var header in Params.Headers.Union(HeaderValues ?? []))
|
@foreach (var header in Params.Headers.UnionBy(HeaderValues ?? [], Params.GetHeaderLabel).OrderBy(Params.GetHeaderLabel))
|
||||||
{
|
{
|
||||||
<SelectRow IsSelected=HeaderValues?.Contains(header)
|
<SelectRow IsSelected=@(HeaderValues?.Any(val => Params.GetHeaderLabel(val) == Params.GetHeaderLabel(header)))
|
||||||
Label="@Params.GetHeaderLabel(header)" Theme=Theme
|
Label="@Params.GetHeaderLabel(header)" Theme=Theme
|
||||||
OnClick="_ => HandleHeaderClicked(header)" />
|
OnClick="_ => HandleHeaderClicked(header)" />
|
||||||
}
|
}
|
||||||
@@ -42,9 +42,9 @@
|
|||||||
|
|
||||||
@if (Params.Items != null)
|
@if (Params.Items != null)
|
||||||
{
|
{
|
||||||
@foreach (var item in Params.Items.Union(Values ?? []))
|
@foreach (var item in Params.Items.UnionBy(Values ?? [], Params.GetItemLabel).OrderBy(Params.GetItemLabel))
|
||||||
{
|
{
|
||||||
<SelectRow IsSelected=Values?.Contains(item)
|
<SelectRow IsSelected=@(Values?.Any(val => Params.GetItemLabel(val) == Params.GetItemLabel(item)))
|
||||||
Label="@Params.GetItemLabel(item)" Theme=Theme
|
Label="@Params.GetItemLabel(item)" Theme=Theme
|
||||||
OnClick="_ => HandleValueClicked(item)" />
|
OnClick="_ => HandleValueClicked(item)" />
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,8 +89,13 @@ public partial class Select<TItem, THeader>
|
|||||||
if (Params.AddItem != null)
|
if (Params.AddItem != null)
|
||||||
{
|
{
|
||||||
Values ??= [];
|
Values ??= [];
|
||||||
Values.Add(Params.AddItem(AddLabel));
|
|
||||||
|
|
||||||
|
if (Type != SelectType.Multiple)
|
||||||
|
{
|
||||||
|
Values = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
Values.Add(Params.AddItem(AddLabel));
|
||||||
AddLabel = string.Empty;
|
AddLabel = string.Empty;
|
||||||
|
|
||||||
await ValuesChanged.InvokeAsync(Values);
|
await ValuesChanged.InvokeAsync(Values);
|
||||||
|
|||||||
@@ -32,6 +32,15 @@ public partial class SelectSearch<TItem>
|
|||||||
|
|
||||||
base.OnParametersSet();
|
base.OnParametersSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnAfterRender(bool firstRender)
|
||||||
|
{
|
||||||
|
if (Values != null)
|
||||||
|
{
|
||||||
|
SearchInput?.SetText(string.Join(", ", Values.Select(GetLabel)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task HandleValuesChanged(IEnumerable<TItem> values)
|
private async Task HandleValuesChanged(IEnumerable<TItem> values)
|
||||||
{
|
{
|
||||||
Values = [.. values];
|
Values = [.. values];
|
||||||
|
|||||||
Reference in New Issue
Block a user