@using AyCode.Blazor.Components.Components.Grids @using AyCode.Core.Loggers; @using AyCode.Core.Extensions @using AyCode.Core.Helpers @using AyCode.Utils.Extensions @using FruitBank.Common.Dtos @using FruitBank.Common.Entities @using FruitBank.Common.Models @using FruitBankHybrid.Shared.Components.Grids.ShippingItems @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Services.Loggers; @using FruitBankHybrid.Shared.Services.SignalRs @inject IEnumerable LogWriters @inject LoggedInModel LoggedInModel; @if (!OnlyGridEditTools) { @ToolbarItemsExtended } @code { [Parameter] public bool OnlyGridEditTools { get; set; } = false; [Parameter] public IMgGridBase Grid { get; set; } = null!; [Parameter] public RenderFragment? ToolbarItemsExtended { get; set; } [Parameter] public EventCallback OnReloadDataClick { get; set; } public ToolbarBase Toolbar { get; set; } = null!; const string ExportFileName = "ExportResult"; private bool _isReloadInProgress; /// /// Whether the grid is currently in edit mode (New or Edit) /// private bool IsEditing => Grid?.GridEditState != MgGridEditState.None; /// /// Whether the grid is currently syncing data /// private bool IsSyncing => Grid?.IsSyncing ?? false; /// /// Whether there is a focused row in the grid /// private bool HasFocusedRow => Grid?.GetFocusedRowIndex() >= 0; private LoggerClient _logger = null!; protected override void OnInitialized() { _logger = new LoggerClient(LogWriters.ToArray()); } async Task ReloadData_Click(ToolbarItemClickEventArgs e) { _isReloadInProgress = true; try { await OnReloadDataClick.InvokeAsync(e); } finally { _isReloadInProgress = false; } } async Task NewItem_Click() { await Grid.StartEditNewRowAsync(); } async Task EditItem_Click() { await Grid.StartEditRowAsync(Grid.GetFocusedRowIndex()); } void DeleteItem_Click() { Grid.ShowRowDeleteConfirmation(Grid.GetFocusedRowIndex()); } async Task SaveItem_Click() { await Grid.SaveChangesAsync(); } async Task CancelEdit_Click() { await Grid.CancelEditAsync(); } void PrevRow_Click() { Grid.StepPrevRow(); } void NextRow_Click() { Grid.StepNextRow(); } void ColumnChooserItem_Click(ToolbarItemClickEventArgs e) { Grid.ShowColumnChooser(); } async Task ExportXlsxItem_Click() { await Grid.ExportToXlsxAsync(ExportFileName); } async Task ExportXlsItem_Click() { await Grid.ExportToXlsAsync(ExportFileName); } async Task ExportCsvItem_Click() { await Grid.ExportToCsvAsync(ExportFileName); } async Task ExportPdfItem_Click() { await Grid.ExportToPdfAsync(ExportFileName); } }