defmodule LiveAntd.Components.Pagination do @moduledoc """ A long list can be divided into several pages using Pagination, and only one page will be loaded at a time. ## API * [x] `current`: Current page number * [x] `defaultCurrent`: Default initial page number * [ ] `defaultPageSize`: Default number of data items per page * [ ] `disabled`: Disable pagination * [ ] `hideOnSinglePage` Whether to hide pager on single page * [ ] `itemRender` To customize item's innerHTML * [x] `pageSize`: Number of data items per page * [ ] `pageSizeOptions`: Specify the sizeChanger options * [ ] `responsive`: If size is not specified, Pagination would resize according to the width of the window * [ ] `showLessItems`: Show less page items * [ ] `showQuickJumper`: Determine whether you can jump to pages directly * [ ] `showSizeChanger`: Determine whether to show pageSize select, it will be true * [ ] `showTitle`: Show page item's title * [x] `showTotal`: To display the total number and range * [ ] `simple`: Whether to use simple mode boolean - * [ ] `size`: Specify the size of Pagination, can be set to small * [x] `total`: Total number of data items * [x] `onChange`: Called when the page number is changed, and it takes the resulting page number and pageSize as its arguments * [ ] `onShowSizeChange`: Called when pageSize is changed ## Example current_page: 1, next_page: nil, per_page: 10, prev_page: nil, total_count: 0, totalPages: 0 """ use Surface.Component # prop defaultCurrent, :string, required: true prop(showTotal, :boolean, default: true) prop(size, :string) prop(current, :integer, default: 1) prop(total, :integer) # prop pageSize, :integer prop(onChange, :event) prop(totalPages, :integer, required: true, default: 0) def render(assigns) do ~H""" """ end def render_prev_page(assigns) do end def render_next_page(assigns) do end defp current_page(index, current), do: index == current end