A React hook that provides unified pagination logic for both client-side and server-side table pagination, abstracting away the differences between pagination types to work seamlessly with the CursorPaginationProps interface. ## Key Components - **`ClientPaginationConfig`** - Configuration interface for client-side pagination with page numbers and totals - **`ServerPaginationConfig`** - Configuration interface for server-side cursor-based pagination with GraphQL-style page info - **`PaginationConfig`** - Union type combining both pagination configuration types - **`useTablePagination`** - Main hook that transforms pagination config into standardized cursor pagination props ## Usage Examples ```typescript // Client-side pagination with page numbers const clientPagination = useTablePagination({ type: 'client', currentPage: 2, totalPages: 5, itemCount: 25, itemName: 'users', onNext: () => setPage(p => p + 1), onPrevious: () => setPage(p => p - 1), showInfo: true }) // Server-side cursor pagination const serverPagination = useTablePagination({ type: 'server', hasNextPage: pageInfo.hasNextPage, hasLoadedBeyondFirst: currentPage > 1, startCursor: pageInfo.startCursor, endCursor: pageInfo.endCursor, itemCount: data.length, itemName: 'orders', onNext: fetchNextPage, onReset: () => fetchPage(1) }) // Returns undefined if no pagination needed (e.g., single page) const pagination = useTablePagination(null) // undefined ``` The hook automatically determines pagination visibility based on the configuration type and returns standardized props that work with cursor-based pagination components.