initial commit
This commit is contained in:
@@ -44,6 +44,12 @@ export default function SocketIOContextProvider({children}) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const sendJobInterestToOwner = (message, room) => {
|
||||||
|
if(message && room){
|
||||||
|
socket.emit("marketjob", { message:{...message}, room });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
socket.on("receive_message", (data) => {
|
socket.on("receive_message", (data) => {
|
||||||
// setSocketMsgReceived(data.message);
|
// setSocketMsgReceived(data.message);
|
||||||
@@ -70,6 +76,15 @@ export default function SocketIOContextProvider({children}) {
|
|||||||
}
|
}
|
||||||
// console.log('DATA', data)
|
// console.log('DATA', data)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
socket.on("marketjob_actions", (data) => { // Triggers refresh on owner side, when somebody sends/shows interest in a job
|
||||||
|
// let user_uid = userDetails.account_type == 'FULL' ? userDetails.uid : sessionStorage.getItem('family_uid') // gets user UID
|
||||||
|
let {message} = data
|
||||||
|
if(message.action == "REFRESH_OFFERS" && message.audience == "MERCHANT"){ // for refreshing job owner offer interest list when any worker sends interest
|
||||||
|
dispatch(tableReload({type:'OFFERINTERESTLISTRELOAD'}))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}, [socket]);
|
}, [socket]);
|
||||||
|
|
||||||
let values = {
|
let values = {
|
||||||
@@ -79,6 +94,7 @@ export default function SocketIOContextProvider({children}) {
|
|||||||
setSocketMsgReceived,
|
setSocketMsgReceived,
|
||||||
marketUpdate,
|
marketUpdate,
|
||||||
parentAssignJobToKid,
|
parentAssignJobToKid,
|
||||||
|
sendJobInterestToOwner,
|
||||||
socketMsgReceived,
|
socketMsgReceived,
|
||||||
// room,
|
// room,
|
||||||
// setRoom,
|
// setRoom,
|
||||||
|
|||||||
@@ -1,11 +1,26 @@
|
|||||||
import { useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
import { toast } from "react-toastify";
|
import { toast } from "react-toastify";
|
||||||
import usersService from "../../../services/UsersService";
|
import usersService from "../../../services/UsersService";
|
||||||
import ModalCom from "../../Helpers/ModalCom";
|
import ModalCom from "../../Helpers/ModalCom";
|
||||||
import { PriceFormatter } from "../../Helpers/PriceFormatter";
|
import { PriceFormatter } from "../../Helpers/PriceFormatter";
|
||||||
import LoadingSpinner from "../../Spinners/LoadingSpinner";
|
import LoadingSpinner from "../../Spinners/LoadingSpinner";
|
||||||
|
import { SocketValues } from "../../Contexts/SocketIOContext";
|
||||||
|
|
||||||
const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
||||||
|
|
||||||
|
let {sendJobInterestToOwner} = SocketValues() // function to emit job interest request
|
||||||
|
const emitOfferInterest = () => {
|
||||||
|
let message = {
|
||||||
|
"audience": "MERCHANT",
|
||||||
|
"action": "REFRESH_OFFERS",
|
||||||
|
"offer_code": details?.offer_code,
|
||||||
|
"offer_uid": details?.offer_uid,
|
||||||
|
"job_uid": details?.job_uid,
|
||||||
|
}
|
||||||
|
let room = `INTEREST-${details?.market_uid}`
|
||||||
|
sendJobInterestToOwner(message, room)
|
||||||
|
}
|
||||||
|
|
||||||
const [textValue, setTextValue] = useState("");
|
const [textValue, setTextValue] = useState("");
|
||||||
const [errMsg, setErrMsg] = useState({
|
const [errMsg, setErrMsg] = useState({
|
||||||
market: false,
|
market: false,
|
||||||
@@ -88,7 +103,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
|||||||
state: true,
|
state: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
emitOfferInterest() // FUNCTIONS TO EMIT EVENT INDICATING SOMEONE SENDS AN INTEREST IN YOUR JOB
|
||||||
setTimeout(() => setManageInt({ msg: "" }), 3000);
|
setTimeout(() => setManageInt({ msg: "" }), 3000);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new Error(error);
|
throw new Error(error);
|
||||||
@@ -296,6 +311,7 @@ const MarketPopUp = ({ details, onClose, situation, marketInt }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export default MarketPopUp;
|
export default MarketPopUp;
|
||||||
|
|
||||||
const CloseIcon = ({ onClose }) => (
|
const CloseIcon = ({ onClose }) => (
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ const initialState = {
|
|||||||
marketTableList: false,
|
marketTableList: false,
|
||||||
familyOfferList: false,
|
familyOfferList: false,
|
||||||
parentFamilyTaskList: false,
|
parentFamilyTaskList: false,
|
||||||
|
offerInterestListReload: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const tableReloadSlice = createSlice({
|
export const tableReloadSlice = createSlice({
|
||||||
@@ -57,6 +58,9 @@ export const tableReloadSlice = createSlice({
|
|||||||
case "PARENTFAMILYTASKLIST": // reloads list of active family task on parent side
|
case "PARENTFAMILYTASKLIST": // reloads list of active family task on parent side
|
||||||
state.parentFamilyTaskList = !state.parentFamilyTaskList;
|
state.parentFamilyTaskList = !state.parentFamilyTaskList;
|
||||||
return;
|
return;
|
||||||
|
case "OFFERINTERESTLISTRELOAD": // to reload offer interest list of owner when a worker sends interest in a job
|
||||||
|
state.offerInterestListReload = !state.offerInterestListReload;
|
||||||
|
return;
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,16 @@ import OffersInterest from "../components/OffersInterest";
|
|||||||
|
|
||||||
import usersService from "../services/UsersService";
|
import usersService from "../services/UsersService";
|
||||||
|
|
||||||
|
import { SocketValues } from "../components/Contexts/SocketIOContext"; // for reading socket context values
|
||||||
|
|
||||||
export default function OffersInterestPage() {
|
export default function OffersInterestPage() {
|
||||||
|
|
||||||
|
const { offerInterestListReload } = useSelector((state) => state.tableReload); // table/list reload variable
|
||||||
|
|
||||||
|
const {userDetails} = useSelector((state) => state?.userDetails); // Gets USER Details
|
||||||
|
|
||||||
|
let {joinRoom} = SocketValues() // function to join room for socket
|
||||||
|
|
||||||
const apiCall = new usersService()
|
const apiCall = new usersService()
|
||||||
|
|
||||||
let {commonHeadBanner} = useSelector(state => state.commonHeadBanner)
|
let {commonHeadBanner} = useSelector(state => state.commonHeadBanner)
|
||||||
@@ -19,6 +28,10 @@ export default function OffersInterestPage() {
|
|||||||
setOfferInterestList({loading: false, data: [], imgServer:''})
|
setOfferInterestList({loading: false, data: [], imgServer:''})
|
||||||
console.log('Error: ', err)
|
console.log('Error: ', err)
|
||||||
})
|
})
|
||||||
|
},[offerInterestListReload])
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
joinRoom(`INTEREST-${userDetails?.uid}`)
|
||||||
},[])
|
},[])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user