diff --git a/src/components/jobPopout/PendingJobsPopout.jsx b/src/components/jobPopout/PendingJobsPopout.jsx index 5ec9a29..f42f444 100644 --- a/src/components/jobPopout/PendingJobsPopout.jsx +++ b/src/components/jobPopout/PendingJobsPopout.jsx @@ -1,9 +1,17 @@ -import React, { useMemo, useState } from "react"; +import React, { useCallback, useMemo, useState } from "react"; import Detail from "./popoutcomponent/Detail"; import ModalCom from "../Helpers/ModalCom"; import usersService from "../../services/UsersService"; +import { toast } from "react-toastify"; import LoadingSpinner from "../Spinners/LoadingSpinner"; +const showSuccessToast = (message) => { + toast.success(message, { + autoClose: 3000, + hideProgressBar: true, + }); +}; + function PendingJobsPopout({ details, onClose, situation }) { const [pendingJobLoader, setPendingJobLoader] = useState({ extend: false, @@ -11,38 +19,45 @@ function PendingJobsPopout({ details, onClose, situation }) { }); const apiCall = useMemo(() => new usersService(), []); - const handlePendingJobsBtn = async ({ target: { name } }) => { - let { job_uid, offer_code } = details; + const handlePendingJobsBtn = useCallback( + async ({ target: { name } }) => { + let { job_uid, offer_code } = details; - let pendingData = { job_uid, offer_code }; - let reqData = { ...pendingData }; + let reqData; + + let pendingData = { job_uid, offer_code }; - if (name === "extend") { try { - setPendingJobLoader({ extend: true }); - let { data } = await apiCall.pendingJobExtend(reqData); - console.log("This is for extend", data); - setPendingJobLoader({ extend: false }); + if (name === "extend") { + setPendingJobLoader({ extend: true }); + reqData = { ...pendingData }; + // let { data } = + await apiCall.pendingJobExtend(reqData); + // console.log("This is for extend", data); + showSuccessToast("Job has been extended by a week!"); + } else if (name === "offer") { + setPendingJobLoader({ offer: true }); + reqData = { ...pendingData }; + // let { data } = + await apiCall.pendingJobSendTome(reqData); + // console.log("This is for offer", data); + showSuccessToast("Offer sent, check your email"); + } else return; + + setTimeout(() => { + setPendingJobLoader({ extend: false, offer: false }); + onClose(); + }, 2700); } catch (error) { - setPendingJobLoader({ extend: false }); + setPendingJobLoader({ extend: false, offer: false }); throw new Error(error); } - } else if (name === "offer") { - try { - setPendingJobLoader({ offer: true }); - let { data } = await apiCall.pendingJobSendTome(reqData); - console.log("This is for offer", data); - setPendingJobLoader({ offer: false }); - } catch (error) { - setPendingJobLoader({ offer: false }); - throw new Error(error); - } - } else return; + }, + [onClose, apiCall, details] + ); - onClose(); - }; return ( - +

@@ -162,8 +177,8 @@ function PendingJobsPopout({ details, onClose, situation }) { name="extend" > {pendingJobLoader.extend ? ( -
- +
+
) : ( "Extend by a week" @@ -178,14 +193,15 @@ function PendingJobsPopout({ details, onClose, situation }) { name="offer" > {pendingJobLoader.offer ? ( -
- +
+
) : ( "Send to me" )}
+