From aba23e82a1d3fb50fb6e557a49c7c56d039c098f Mon Sep 17 00:00:00 2001 From: Ebube Date: Tue, 6 Jun 2023 01:34:48 +0100 Subject: [PATCH] . --- src/components/Cards/AvailableJobsCard.jsx | 24 +++++++- .../MarketPlace/PopUp/MarketPopUp.jsx | 60 ++++++++++++++++--- src/services/UsersService.js | 25 ++++++++ 3 files changed, 100 insertions(+), 9 deletions(-) diff --git a/src/components/Cards/AvailableJobsCard.jsx b/src/components/Cards/AvailableJobsCard.jsx index d0547f0..30ee011 100644 --- a/src/components/Cards/AvailableJobsCard.jsx +++ b/src/components/Cards/AvailableJobsCard.jsx @@ -1,9 +1,10 @@ -import React, { useEffect, useState } from "react"; +import React, { useCallback, useEffect, useMemo, useState } from "react"; import { Link, useNavigate, } from "react-router-dom"; import { toast } from "react-toastify"; import localImgLoad from "../../lib/localImgLoad"; import Icons from "../Helpers/Icons"; import MarketPopUp from "../MarketPlace/PopUp/MarketPopUp"; +import usersService from "../../services/UsersService"; export default function AvailableJobsCard({ className, @@ -13,8 +14,11 @@ export default function AvailableJobsCard({ //debugger; const [addFavorite, setValue] = useState(datas.whishlisted); const [marketPopUp, setMarketPopUp] = useState({ show: false, data: {} }); + const [manageInt, setManageInt] = useState(null) const navigate = useNavigate(); + const apiCall = useMemo(() => new usersService(), []); + const favoriteHandler = () => { if (!addFavorite) { @@ -26,11 +30,26 @@ export default function AvailableJobsCard({ } }; + const marketInterestData = useCallback(async() => { + let { offer_code } = datas; + let reqData = { offer_code }; + + try { + const manageInt = await apiCall.MarketInterest(reqData); + const manageIntRes = await manageInt?.data; + setManageInt(manageIntRes) + } catch (error) { + throw new Error(error) + } + + }, []) + useEffect(() => { if (!datas) { navigate("/market", { replace: true }); } - }, []) + marketInterestData() + }, [marketInterestData, datas]) return ( <>
)} diff --git a/src/components/MarketPlace/PopUp/MarketPopUp.jsx b/src/components/MarketPlace/PopUp/MarketPopUp.jsx index dfe541c..1902fe7 100644 --- a/src/components/MarketPlace/PopUp/MarketPopUp.jsx +++ b/src/components/MarketPlace/PopUp/MarketPopUp.jsx @@ -1,9 +1,51 @@ -import React from "react"; +import React, { useCallback, useEffect, useMemo, useState } from "react"; import ModalCom from "../../Helpers/ModalCom"; import { Form, Formik } from "formik"; +import usersService from "../../../services/UsersService"; -const MarketPopUp = ({ details, onClose, situation }) => { +const MarketPopUp = ({ details, onClose, situation, marketInt }) => { + const [marketMsg, setMarketMsg] = useState({ loading: false, data: {} }); + const [textValue, setTextValue] = useState(""); + + const handleInputChange = ({ target: { value } }) => { + setTextValue(value); + }; console.log("maker pop data", details); + const apiCall = useMemo(() => new usersService(), []); + + const marketCalls = useCallback(async (e) => { + let nameOfCall = e?.target?.name; + let { offer_code } = details; + let reqData = { offer_code }; + + try { + if (nameOfCall === "market-message") { + // To manage the manage msg data + setMarketMsg({ loading: true }); + reqData = { your_message: textValue, ...reqData }; + + const marketMessage = await apiCall.MarketMessage(reqData); + const marketMessageRes = await marketMessage?.data; + + // To manage the manage msg data + setMarketMsg({ loading: false, data: marketMessageRes }); + + setTimeout(() => { + onClose(); + }, 3500); + } + } catch (error) { + throw new Error(error); + } + }); + + useEffect(() => { + marketCalls(); + }, []); + + let addedIntDate = marketInt?.added?.split(" ")[0]; + let expireIntDate = marketInt?.expire?.split(" ")[0]; + return ( // className="job-popup" @@ -63,11 +105,15 @@ const MarketPopUp = ({ details, onClose, situation }) => { rows="5" style={{ resize: "none" }} placeholder="Enter message here ..." - // value={textArea} - // onChange={handleInputChange} + value={textValue} + onChange={handleInputChange} />
- @@ -86,13 +132,13 @@ const MarketPopUp = ({ details, onClose, situation }) => { Interest Request -

Error - You can not accept your job

+

Error - {marketInt?.status}

Interest: 0


-

Expire: {details.expire}

+

Expire: {expireIntDate}

{/* END OF ACTION SECTION */} diff --git a/src/services/UsersService.js b/src/services/UsersService.js index c1c0b5a..71a7ad1 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -466,6 +466,31 @@ class usersService { return this.postAuxEnd("/accounttypes", postData); } + // Manage Interest + MarketInterest(reqData) { + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + msg_type: 'JOB', + action: 13033, + ...reqData + }; + return this.postAuxEnd("/marketinterest", postData); + } + + MarketMessage(reqData) { + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + msg_type: 'JOB', + action: 13036, + ...reqData + }; + return this.postAuxEnd("/marketmessage", postData); + } + // END POINT TO ACCEPT TERMS AND AGREEMENT jobManagerAgree() { var postData = {