import React, { useCallback, useEffect, useMemo, useState } from "react"; import dataImage1 from "../../assets/images/data-table-user-1.png"; import PaginatedList from "../Pagination/PaginatedList"; import { handlePagingFunc } from "../Pagination/HandlePagination"; import usersService from "../../services/UsersService"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import {useNavigate, useLocation} from 'react-router-dom' export default function MyJobTable({ className }) { let navigate = useNavigate() let {pathname} = useLocation() const [tasksData, setTasksData] = useState(null); const [loader, setLoader] = useState(true); let apiCall = useMemo(() => new usersService(), []); const displayTasks = useCallback(async () => { try { const res = await apiCall.getMyActiveTaskList(); let { data: { result_list }, internal_return, statusText, } = await res; if (internal_return < 0 || statusText !== "OK") return; setTasksData(result_list); setLoader(false); } catch (error) { throw new Error(error); } }, [apiCall]); useEffect(() => { displayTasks(); }, []); const [currentPage, setCurrentPage] = useState(0); const indexOfFirstItem = Number(currentPage); const indexOfLastItem = Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE); const currentTask = tasksData?.slice(indexOfFirstItem, indexOfLastItem); const handlePagination = (e) => { handlePagingFunc(e, setCurrentPage); }; return (
{loader ? (
) : (
{tasksData?.length > 0 ? ( currentTask?.map((task, idx) => (
data

{task?.title}

{task?.description} Price: {Number(task?.price) * 0.01} Duration: {Number(task?.timeline_days) === 1 ? `${task?.timeline_days} day` : `${task?.timeline_days} day(s)`} Due Date: {task?.delivery_date} Confirmation: {task?.contract}
)) ) : (
No Tasks!
)}
{/* PAGINATION BUTTON */} = tasksData?.length ? true : false } data={tasksData} start={indexOfFirstItem} stop={indexOfLastItem} /> {/* END OF PAGINATION BUTTON */}
)}
); } /* */