using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
namespace AntDesign
{
public partial class PaginationOptions : AntDomComponentBase
{
///
/// 'default' | 'small' = 'default';
///
[Parameter] public string Size { get; set; } = "default";
[Parameter] public bool Disabled { get; set; } = false;
[Parameter] public bool ShowSizeChanger { get; set; } = false;
[Parameter] public bool ShowQuickJumper { get; set; } = false;
[Parameter] public object Locale { get; set; }
[Parameter] public int Total { get; set; } = 0;
[Parameter] public int PageIndex { get; set; } = 1;
[Parameter] public int PageSize { get; set; } = 10;
[Parameter] public int[] PageSizeOptions { get; set; } = Array.Empty();
[Parameter] public EventCallback PageIndexChange { get; set; }
[Parameter] public EventCallback PageSizeChange { get; set; }
[CascadingParameter] public Pagination Pagination { get; set; }
private string _inputValue;
private (int value, string label)[] _listOfPageSizeOption = Array.Empty<(int, string)>();
private void OnPageSizeChange(int size)
{
if (this.PageSize != size)
{
this.PageSizeChange.InvokeAsync(size);
}
}
private void JumpToPageViaInput(KeyboardEventArgs e)
{
if (e.Key == "Enter")
{
var index = int.TryParse(_inputValue, out var value) && value > 0 ? value : this.PageIndex;
PageIndexChange.InvokeAsync(index);
_inputValue = "";
}
}
}
}