import React, { useCallback, useEffect, useMemo, useState } from "react"; import dataImage2 from "../../assets/images/data-table-user-2.png"; import SelectBox from "../Helpers/SelectBox"; import DeleteJobPopout from "../jobPopout/DeleteJobPopout"; import JobListPopout from "../jobPopout/JobListPopout"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import { useSelector } from "react-redux"; import usersService from "../../services/UsersService"; import { handlePagingFunc } from "../Pagination/HandlePagination"; import PaginatedList from "../Pagination/PaginatedList"; import EditJobPopOut from "../jobPopout/EditJobPopout"; export default function MyJobTable({ MyJobList, reloadJobList, className }) { const [myCountry, setCountries] = useState(""); const { userDetails: { country }, } = useSelector((state) => state?.userDetails); const userApi = useMemo(() => new usersService(), []); // Get Country Api const getCountryList = useCallback(async () => { const res = await userApi.getSignupCountryData(); try { if (res.status === 200) { const { data: { signup_country }, } = await res; let checkCountry = signup_country ?.filter((item) => item[0] == country) ?.map((item, idx) => item[1]) .join(""); setCountries(checkCountry); } } catch (error) { throw new Error(error); } }, [userApi, country]); useEffect(() => { getCountryList(); }, [getCountryList]); const filterCategories = ["All Categories", "Explore", "Featured"]; const [selectedCategory, setCategory] = useState(filterCategories[0]); let [jobPopout, setJobPopout] = useState({ show: false, data: {} }); // STATE TO HOLD THE VALUE OF THE ALERT DETAILS AND DETERMINE WHEN TO SHOW let [deleteJobPopout, setDeleteJobPopout] = useState({ show: false, data: {}, }); // STATE TO HOLD THE VALUE OF THE ITEM DETAILS TO DELETE AND DETERMINE WHEN TO SHOW const [editJob, setEditJob] = useState({ show: false, data: {} }); const [currentPage, setCurrentPage] = useState(0); const indexOfFirstItem = Number(currentPage); const indexOfLastItem = Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE); const currentJobList = MyJobList?.data?.result_list?.slice( indexOfFirstItem, indexOfLastItem ); const handlePagination = (e) => { handlePagingFunc(e, setCurrentPage); }; return (

All Jobs

{MyJobList.loading ? ( ) : (
{selectedCategory === "All Categories" ? ( <> {MyJobList && MyJobList?.data?.result_list && MyJobList.data?.result_list.length > 0 && currentJobList.map((value, index) => ( ))} ) : selectedCategory === "Explore" ? ( <> ) : ( <> )}
. .
data

{value.title}

{value.description}
Price:{" "} {value.price * 0.01} Duration:{" "} {" "} {value.timeline_days} day(s)
|
{/* PAGINATION BUTTON */} = MyJobList?.data?.result_list?.length ? true : false } data={MyJobList?.data?.result_list} start={indexOfFirstItem} stop={indexOfLastItem} /> {/* END OF PAGINATION BUTTON */}
)} {/* Job List Popout */} {jobPopout.show && ( { setJobPopout({ show: false, data: {} }); }} situation={jobPopout.show} /> )} {/* End of Job List Popout */} {/* Delete Job Popout */} {deleteJobPopout.show && ( { setDeleteJobPopout({ show: false, data: {} }); }} reloadJobList={reloadJobList} situation={deleteJobPopout.show} /> )} {/* END of Delete Job Popout */} {editJob.show && ( { setEditJob({ show: false, data: {}, }); }} situation={editJob.show} country={myCountry} /> )}
); }