Files
Users-Wrench/src/views/ManageActiveJobs.jsx
T
2023-06-27 10:06:51 +01:00

62 lines
1.7 KiB
React

import React, { useState, useEffect } from "react";
import ActiveJobs from "../components/MyActiveJobs/ActiveJobs";
import { useLocation, useNavigate } from "react-router-dom";
import usersService from "../services/UsersService";
function ManageActiveJobs() {
const ApiCall = new usersService();
let navigate = useNavigate();
let { state } = useLocation();
let [details, setDetails] = useState({}); // to hold state values
let [activeJobMesList, setActiveJobMesList] = useState({
loading: true,
error: false,
data: [],
});
let [activeJobMesListReload, setActiveJobMesListReload] = useState(false); // state to determine when ACTIVE JOB MESSAGE LIST RELOADS/RE-RENDERS
const getActiveJobMesList = () => {
// FUNCTION TO GET ACTIVE JOB MESSAGE LIST
setActiveJobMesList({ loading: true, error: false, data: [] });
let contract = { contract: state.contract };
ApiCall.activeJobMesList(contract)
.then((res) => {
if (res.status != 200 || res.data.internal_return < 0) {
setActiveJobMesList({ loading: false, error: false, data: [] });
return;
}
setActiveJobMesList({
loading: false,
error: false,
data: res.data.result_list,
});
})
.catch((error) => {
setActiveJobMesList({ loading: false, error: true, data: [] });
});
};
useEffect(() => {
if (!state) {
navigate("/", { replace: true });
return;
}
setDetails(state);
getActiveJobMesList();
}, [activeJobMesListReload]);
return (
<ActiveJobs
details={state}
activeJobMesList={activeJobMesList}
reloadActiveJobList={setActiveJobMesListReload}
/>
);
}
export default ManageActiveJobs;