parent assign job triggers update in child account #648

Merged
tokslaw merged 1 commits from parent-assign-job into master 2024-03-18 21:02:02 +00:00
7 changed files with 37 additions and 19 deletions
+2 -1
View File
@@ -145,8 +145,9 @@ export default function Login() {
localStorage.setItem("member_id", `${res.data.member_id}`);
localStorage.setItem("uid", `${res.data.uid}`);
localStorage.setItem("session_token", `${res.data.session}`);
if (name === "family") {
if (res.data?.account_type == "FAMILY") {
sessionStorage.setItem("family_uid", res.data?.family_uid);
sessionStorage.setItem("parent_uid", res.data?.parent_uid);
}
// localStorage.setItem("session", `${res.data.session}`);
dispatch(updateUserDetails({ ...res.data }));
+2 -1
View File
@@ -53,7 +53,7 @@ export default function SocketIOContextProvider({children}) {
});
socket.on("family_actions", (data) => {
// setSocketMsgReceived(data.message);
// dispatch(tableReload({type:'MARKETTABLELIST'}))
dispatch(tableReload({type:'FAMILYOFFERLIST'}))
console.log('working')
});
}, [socket]);
@@ -64,6 +64,7 @@ export default function SocketIOContextProvider({children}) {
joinRoom,
setSocketMsgReceived,
marketUpdate,
parentAssignJobToKid,
socketMsgReceived,
// room,
// setRoom,
@@ -4,26 +4,27 @@ import MyOffersFamilyTable from '../MyTasks/MyOffersFamilyTable'
import LoadingSpinner from '../Spinners/LoadingSpinner';
import usersService from '../../services/UsersService';
import CustomBreadcrumb from '../Breadcrumb/CustomBreadcrumb';
import { useSelector } from 'react-redux';
export default function FamilyPendingOffer() {
const userApi = new usersService();
const {familyOfferList} = useSelector((state) => state.tableReload)
const [myOffersList, setMyOffersList] = useState({loading: true, data: []});
const getMyOffersList = async () => {
try {
const res = await userApi.getOffersList();
setMyOffersList({loading:false, data:res.data});
console.log('SAME', res.data)
} catch (error) {
setMyOffersList({loading:false, data:[]});
console.log("Error getting offers", error);
}
};
useEffect(()=>{
getMyOffersList()
},[])
},[familyOfferList])
return (
<Layout>
{myOffersList.loading ?
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from "react";
import { useDispatch } from "react-redux";
import { useDispatch, useSelector } from "react-redux";
import { useLocation } from "react-router-dom";
import usersService from "../../../services/UsersService";
import { tableReload } from "../../../store/TableReloads";
@@ -8,6 +8,7 @@ import { PriceFormatter } from "../../Helpers/PriceFormatter";
import LoadingSpinner from "../../Spinners/LoadingSpinner";
import Detail from "../../jobPopout/popoutcomponent/Detail";
import { NewTasks } from "./forms";
import { SocketValues } from "../../Contexts/SocketIOContext";
const AssignTaskPopout = ({
action,
@@ -21,9 +22,12 @@ const AssignTaskPopout = ({
assignTaskChecker,
}) => {
const {parentAssignJobToKid} = SocketValues()
const apiCall = new usersService();
let { pathname, state } = useLocation();
const {userDetails} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
const [selectedFamilyUid, setSelectedFamilyUid] = useState('');
const handleFamChange = (event) => {
@@ -188,6 +192,16 @@ const AssignTaskPopout = ({
dispatch(tableReload({ type: "WALLETTABLE" })); // RELOADS USER WALLET
//SENDS MESSAGE TO SOCKET TO UPDATE CHILD ACCOUNT
// message, room
let socketMsg = {
"audience": "MEMBER",
"action": "REFRESH_OFFER",
"family_uid": reqData.family_uid,
}
let socketRoom = `FAMILY-${userDetails.uid}`
parentAssignJobToKid(socketMsg, socketRoom) //SENDS MESSAGE TO SOCKET TO UPDATE CHILD ACCOUNT
setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
action(); // FUNCTION THAT CLOSES THE MODAL BOX
+1 -4
View File
@@ -20,10 +20,7 @@ export default function Layout({ children }) {
};
const navigate = useNavigate();
const logOut = () => {
localStorage.removeItem("session_token");
localStorage.removeItem("member_id");
localStorage.removeItem("uid");
sessionStorage.removeItem("family_uid");
sessionStorage.clear();
localStorage.clear();
// toast.success("Come Back Soon", {
// icon: `🙂`,
+9 -9
View File
@@ -36,14 +36,11 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
let loggedIn = username && session && uid ? true : false; // variable to determine if user is logged in
useEffect(() => {
//Removing Data stored at localStorage after session expires
const expireSession = () => {
localStorage.removeItem("uid");
localStorage.removeItem("member_id");
localStorage.removeItem("session_token");
sessionStorage.removeItem("family_uid");
sessionStorage.clear();
localStorage.clear();
navigate("/login", { replace: true }); // redirects user to login page after session expires
};
@@ -109,6 +106,8 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
});
};
loadProfile();
}else{
setIsLogin({ loading: false, status: true });
}
}, []);
@@ -324,10 +323,11 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
},[isLogin.status])
useEffect(()=>{ // sends an event to the socket to enable user join a room to be able to receive update for parent child job assign
joinRoom(`FAMILY-${account_type == 'FULL' ? uid : parent_uid}`)
console.log(`Room joined for parent child task assign as ${account_type} with ${account_type == 'FULL' ? uid : parent_uid}}, => ${uid}, ${parent_uid}`)
},[isLogin.status])
if(loggedIn || isLogin.status){
joinRoom(`FAMILY-${account_type == 'FULL' ? uid : sessionStorage.getItem('parent_uid')}`)
console.log(`Room joined for parent child task assign as ${account_type} with ${account_type == 'FULL' ? uid : sessionStorage.getItem('parent_uid')}}`)
}
},[isLogin.status])
// RENDER PAGE
return isLogin.loading && !loggedIn ? (
+4
View File
@@ -11,6 +11,7 @@ const initialState = {
familyBannersListTable: false,
chatMessageList: false,
marketTableList: false,
familyOfferList: false,
};
export const tableReloadSlice = createSlice({
@@ -49,6 +50,9 @@ export const tableReloadSlice = createSlice({
case "MARKETTABLELIST":
state.marketTableList = !state.marketTableList;
return;
case "FAMILYOFFERLIST":
state.familyOfferList = !state.familyOfferList;
return;
default:
return state;
}