@@ -8,6 +8,7 @@ import { type Task } from "../../../types/TaskTypes";
88import Button from "../../../components/common/Button" ;
99import { ADD_TASK_TEMPLATE_PAGE } from "../../../constants/Routes" ;
1010import TaskTemplateAPIClient from "../../../APIClients/TaskTemplateAPIClient" ;
11+ import Pagination from "../../../components/common/Pagination" ;
1112
1213const TaskManagementPage = ( ) : React . ReactElement => {
1314 const history = useHistory ( ) ;
@@ -16,6 +17,8 @@ const TaskManagementPage = (): React.ReactElement => {
1617 const [ search , setSearch ] = useState < string > ( "" ) ;
1718 const { isOpen, onOpen, onClose } = useDisclosure ( ) ;
1819 const [ selectedTask , setSelectedTask ] = useState < Task | null > ( null ) ;
20+ const [ page , setPage ] = useState < number > ( 1 ) ;
21+ const numTasksPerPage = 10 ;
1922
2023 const handleTaskClick = ( task : Task ) => {
2124 setSelectedTask ( task ) ;
@@ -63,6 +66,8 @@ const TaskManagementPage = (): React.ReactElement => {
6366 ) ;
6467 } , [ filters , search , tasks ] ) ;
6568
69+ const filteredTasksLength = filteredTasks . length ;
70+
6671 const getTasks = async ( ) => {
6772 try {
6873 const fetchedTasks = await TaskTemplateAPIClient . getAllTaskTemplates ( ) ;
@@ -101,9 +106,20 @@ const TaskManagementPage = (): React.ReactElement => {
101106 </ Button >
102107 ) ,
103108 } }
109+ bottomContent = {
110+ < Pagination
111+ value = { page }
112+ onChange = { ( newPage ) => setPage ( newPage ) }
113+ numberOfItems = { filteredTasksLength }
114+ itemsPerPage = { numTasksPerPage }
115+ />
116+ }
104117 >
105118 < TaskManagementTable
106- tasks = { filteredTasks }
119+ tasks = { filteredTasks . slice (
120+ ( page - 1 ) * numTasksPerPage ,
121+ page * numTasksPerPage ,
122+ ) }
107123 clearFilters = { handleClearFilters }
108124 onTaskClick = { handleTaskClick }
109125 />
0 commit comments