diff --git a/JSMR.UI.Blazor/Components/JPagination2.razor b/JSMR.UI.Blazor/Components/JPagination2.razor new file mode 100644 index 0000000..93862e1 --- /dev/null +++ b/JSMR.UI.Blazor/Components/JPagination2.razor @@ -0,0 +1,113 @@ +@using JSMR.UI.Blazor.Enums + + + + + +@code { + [Parameter] + public int PageNumber { get; set; } + + [Parameter] + public EventCallback PageNumberChanged { get; set; } + + [Parameter] + public int[] PageSizes { get; set; } = [5, 10, 25, 50, 100]; + + List> PageSizes2 => [.. PageSizes.Select(x => new BitDropdownItem() { Text = x.ToString(), Value = x })]; + + List PageSizes3 => [.. PageSizes.Select(x => new PageSizeItem() { Text = $"{x} items / page", Value = x })]; + + [Parameter] + public int PageSize { get; set; } + + [Parameter] + public EventCallback PageSizeChanged { get; set; } + + [Parameter] + public int TotalItems { get; set; } + + [Parameter] + public EventCallback TotalItemsChanged { get; set; } + + [Parameter] + public RenderFragment? RightContent { get; set; } + + public string IndexInfo => TotalItems == 0 ? "No items" : $"{StartIndex.ToString("n0")} - {EndIndex.ToString("n0")} of {TotalItems.ToString("n0")} items"; + + public int StartIndex => (PageNumber - 1) * PageSize + 1; + public int EndIndex => PageNumber * PageSize < TotalItems ? PageNumber * PageSize : TotalItems; + + private async Task OnSelectedChanged(int newPage) + { + PageNumber = newPage; + await PageNumberChanged.InvokeAsync(newPage); + } + + private async Task OnPageSizeChanged(int newPageSize) + { + PageSize = newPageSize; + await PageSizeChanged.InvokeAsync(newPageSize); + } + + private async Task OnPaginationChanged(AntDesign.PaginationEventArgs args) + { + int newPage = args.Page; + + PageNumber = newPage; + await PageNumberChanged.InvokeAsync(newPage); + } + + public class PageSizeItem + { + public string? Text { get; set; } + public int Value { get; set; } + } +} \ No newline at end of file diff --git a/JSMR.UI.Blazor/Pages/Creators.razor b/JSMR.UI.Blazor/Pages/Creators.razor index 2257ab5..a964da7 100644 --- a/JSMR.UI.Blazor/Pages/Creators.razor +++ b/JSMR.UI.Blazor/Pages/Creators.razor @@ -66,11 +66,10 @@ *@ + - -