feat: tank info dialog mechanism

This commit is contained in:
Mikhail Shabanov committed 2022-05-05 12:28:16 +02:00
1 parent 4c7e7b3ca2
commit d5a139822d
9 files changed
+88 -7

No files matched your search

@@ -1,5 +1,8 @@
@using WotBlitzStatisticsPro.Blazor.Helpers
@using MediatR
@using WotBlitzStatisticsPro.Blazor.Messages
@inject IStringLocalizer<App> Localize;
@inject IMediator Mediator
<div class="row">
<RadzenCard class="m-3" style="width: 350px;">
@@ -51,7 +54,7 @@
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl">
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MostRelevantTank)); })">
@if (MostRelevantTank != null)
{
<TankCard Tank=@MostRelevantTank></TankCard>
@@ -67,7 +70,7 @@
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl">
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxXpTank)); })">
@if (MaxXpTank != null)
{
<TankCard Tank=@MaxXpTank></TankCard>
@@ -83,7 +86,7 @@
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl">
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxFragsTank)); })">
@if (MaxFragsTank != null)
{
<TankCard Tank=@MaxFragsTank></TankCard>
@@ -1,4 +1,5 @@
@using WotBlitzStatisticsPro.Blazor.Helpers
@using WotBlitzStatisticsPro.Blazor.Messages
@inherits PlayerInfoTanksListBase;
<div class="row">
@@ -84,7 +85,8 @@
<RadzenDataGridColumn TItem="ITank" Title="" Sortable="false" Filterable="false" Width="55px">
<Template Context="data">
<RadzenImage Path="@data.PreviewImage" style="width: 50px; height: 40px; border-radius: 8px;"
MouseEnter="@(args => ShowTankTooltip(args, data.PreviewImage, data.TankNationId, new TooltipOptions(){ Style = "background-color:#2F3D43" }) )" />
MouseEnter="@(args => ShowTankTooltip(args, data.PreviewImage, data.TankNationId, new TooltipOptions(){ Style = "background-color:#2F3D43" }) )"
Click="@(async (args) => { await Mediator.Publish(new OpenTankDialogMessage(data)); })" />
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ITank" Property="Name" Filterable="false" Sortable="true" Title="@Localize["Tank"]" Frozen="false" Width="100px" TextAlign="TextAlign.Left">
@@ -8,7 +8,8 @@ using Radzen.Blazor;
using WotBlitzStatisticsPro.Blazor.GraphQl;
using WotBlitzStatisticsPro.Blazor.Helpers;
using WotBlitzStatisticsPro.Blazor.Model;
using MediatR;
using WotBlitzStatisticsPro.Blazor.Messages;
namespace WotBlitzStatisticsPro.Blazor.Pages
{
public class PlayerInfoTanksListBase: ComponentBase
@@ -22,6 +23,9 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
[Inject]
public IStringLocalizer<App> Localize { get; set; }
[Inject]
public IMediator Mediator { get; set; }
public RadzenDataGrid<ITank> TanksGrid { get; set; }
public IEnumerable<ITank> FilteredTankList { get; set; }
@@ -1,4 +1,5 @@
@inherits PlayerInfoTanksListBase;
@using WotBlitzStatisticsPro.Blazor.Messages
@inherits PlayerInfoTanksListBase;
@if (TanksList != null && FilteredTankList.Count() > 0)
{
<div class="sorting">
@@ -49,7 +50,9 @@
<div class="tanks-list">
@foreach (var tank in FilteredTankList)
{
<TankListItem Tank=@tank></TankListItem>
<div @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(tank)); })">
<TankListItem Tank=@tank></TankListItem>
</div>
}
</div>
@@ -0,0 +1,10 @@
@using WotBlitzStatisticsPro.Blazor.Model
<p>
@Tank.Name
</p>
@code {
[Parameter]
public ITank Tank { get; set; }
}