From 7db19ef1687c6a0ff57ec0efcae39693a31a10e7 Mon Sep 17 00:00:00 2001 From: bqxbqx Date: Tue, 12 Nov 2024 14:02:19 +0800 Subject: [PATCH] fix(pagination): add & back button --- .../lib/Pagination/Pagination.stories.tsx | 1 + .../lib/Pagination/PaginationItem.tsx | 33 ++++++++++--------- packages/ui-react/package.json | 2 +- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/packages/ui-react/lib/Pagination/Pagination.stories.tsx b/packages/ui-react/lib/Pagination/Pagination.stories.tsx index c1ce165..5be1535 100644 --- a/packages/ui-react/lib/Pagination/Pagination.stories.tsx +++ b/packages/ui-react/lib/Pagination/Pagination.stories.tsx @@ -39,5 +39,6 @@ export const DefaultPagination: Story = { export const ExamplePagination: Story = { args: { ...defaultProps, + total: 431, }, }; diff --git a/packages/ui-react/lib/Pagination/PaginationItem.tsx b/packages/ui-react/lib/Pagination/PaginationItem.tsx index d541f94..2d51cb8 100644 --- a/packages/ui-react/lib/Pagination/PaginationItem.tsx +++ b/packages/ui-react/lib/Pagination/PaginationItem.tsx @@ -30,22 +30,25 @@ export const PaginationItemImpl = ({ const paginationStoreContext = useContext(PaginationStoreContext); - const handleClick = useCallback((type: 'select' | 'add' | 'delete' | 'none', index?: number) => { - const activePage = paginationStoreContext?.activePage ?? 0; + const handleClick = useCallback( + (type: 'select' | 'add' | 'delete' | 'none', index?: number) => { + const activePage = paginationStoreContext?.activePage ?? 0; - if (type === 'select' && index !== undefined) { - !activePage && changeCurrentPage(index + 1); - paginationStoreContext && paginationStoreContext.onChange?.(index + 1); - } else if (type === 'add') { - !activePage && increaseCurrentPage(); - paginationStoreContext && - paginationStoreContext.onChange?.(activePage ? activePage + 1 : currentPage + 1); - } else if (type === 'delete') { - !activePage && decreaseCurrentPage(); - paginationStoreContext && - paginationStoreContext.onChange?.(activePage ? activePage + 1 : currentPage - 1); - } - }, []); + if (type === 'select' && index !== undefined) { + !activePage && changeCurrentPage(index + 1); + paginationStoreContext && paginationStoreContext.onChange?.(index + 1); + } else if (type === 'add') { + !activePage && increaseCurrentPage(); + paginationStoreContext && + paginationStoreContext.onChange?.(activePage ? activePage + 1 : currentPage + 1); + } else if (type === 'delete') { + !activePage && decreaseCurrentPage(); + paginationStoreContext && + paginationStoreContext.onChange?.(activePage ? activePage + 1 : currentPage - 1); + } + }, + [currentPage], + ); return (