@@ -11,6 +11,8 @@ import {
11
11
TableHead ,
12
12
TableHeader ,
13
13
TableRow ,
14
+ TablePagination ,
15
+ useTablePagination ,
14
16
} from '@/components/ui/table' ;
15
17
import {
16
18
Dialog ,
@@ -269,6 +271,17 @@ export default function TeamsPage() {
269
271
return filtered ;
270
272
} , [ teams , nameFilter , adminEmailFilter , statusFilter , sortField , sortDirection ] ) ;
271
273
274
+ // Pagination
275
+ const {
276
+ currentPage,
277
+ pageSize,
278
+ totalPages,
279
+ totalItems,
280
+ paginatedData,
281
+ goToPage,
282
+ changePageSize,
283
+ } = useTablePagination ( filteredAndSortedTeams , 10 ) ;
284
+
272
285
const hasActiveFilters = Boolean ( nameFilter . trim ( ) || adminEmailFilter . trim ( ) || statusFilter !== 'all' ) ;
273
286
274
287
// Filter fields configuration
@@ -1003,14 +1016,14 @@ export default function TeamsPage() {
1003
1016
</ TableRow >
1004
1017
</ TableHeader >
1005
1018
< TableBody >
1006
- { filteredAndSortedTeams . length === 0 ? (
1019
+ { paginatedData . length === 0 ? (
1007
1020
< TableRow >
1008
1021
< TableCell colSpan = { 7 } className = "text-center py-6" >
1009
1022
No teams found. Create a new team to get started.
1010
1023
</ TableCell >
1011
1024
</ TableRow >
1012
1025
) : (
1013
- filteredAndSortedTeams . map ( ( team ) => (
1026
+ paginatedData . map ( ( team ) => (
1014
1027
< React . Fragment key = { team . id } >
1015
1028
< TableRow
1016
1029
className = "cursor-pointer hover:bg-muted/50"
@@ -1381,6 +1394,15 @@ export default function TeamsPage() {
1381
1394
</ div >
1382
1395
) }
1383
1396
1397
+ < TablePagination
1398
+ currentPage = { currentPage }
1399
+ totalPages = { totalPages }
1400
+ pageSize = { pageSize }
1401
+ totalItems = { totalItems }
1402
+ onPageChange = { goToPage }
1403
+ onPageSizeChange = { changePageSize }
1404
+ />
1405
+
1384
1406
{ /* Dialog for adding existing users to a team */ }
1385
1407
< Dialog open = { isAddingUserToTeam } onOpenChange = { setIsAddingUserToTeam } >
1386
1408
< DialogContent >
0 commit comments