Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 985afa3c7b | |||
| 70d82d89b3 | |||
| 7f5eccb3b7 | |||
| 6729b780bd | |||
| 06224f121a | |||
| dc91649114 | |||
| 22f6eb436d | |||
| f2ab0cd6c9 | |||
| a2819786ae | |||
| 6cd92f6372 | |||
| 7173901c9b | |||
| 380d014964 |
+3
-2
@@ -21,9 +21,10 @@ services:
|
|||||||
- backend.wrenchboard.api.live:10.10.33.15
|
- backend.wrenchboard.api.live:10.10.33.15
|
||||||
- backend.wrenchboard.api.test:10.10.33.15
|
- backend.wrenchboard.api.test:10.10.33.15
|
||||||
- apigate.lotus.g1.wrenchboard.com:10.10.33.15
|
- apigate.lotus.g1.wrenchboard.com:10.10.33.15
|
||||||
|
- apigate.nebula.g1.wrenchboard.com:10.10.33.15
|
||||||
- apigate.orion.g1.wrenchboard.com:10.10.33.15
|
- apigate.orion.g1.wrenchboard.com:10.10.33.15
|
||||||
# #- backend.wrenchboard.api.live:172.31.4.27
|
- socket-dev.wrenchboard.com:10.10.33.15
|
||||||
# #- backend.wrenchboard.api.test:10.20.30.27
|
- socket.wrenchboard.com:10.10.33.15
|
||||||
- apigateway.wrenchboard.app.dev.fluxtra.net:10.20.30.19
|
- apigateway.wrenchboard.app.dev.fluxtra.net:10.20.30.19
|
||||||
- apigateway.wrenchboard.app.lotus.fluxtra.net:172.31.4.19
|
- apigateway.wrenchboard.app.lotus.fluxtra.net:172.31.4.19
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -30,11 +30,21 @@ export default function SocketIOContextProvider({children}) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const marketUpdate = (message, room) => {
|
||||||
|
if(message && room){
|
||||||
|
socket.emit("marketjob_addded", { message, room });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
socket.on("receive_message", (data) => {
|
socket.on("receive_message", (data) => {
|
||||||
// setSocketMsgReceived(data.message);
|
// setSocketMsgReceived(data.message);
|
||||||
dispatch(tableReload({type:'CHATMESSAGELIST'}))
|
dispatch(tableReload({type:'CHATMESSAGELIST'}))
|
||||||
});
|
});
|
||||||
|
socket.on("received_refreshmarket_jobs", (data) => {
|
||||||
|
// setSocketMsgReceived(data.message);
|
||||||
|
dispatch(tableReload({type:'MARKETTABLELIST'}))
|
||||||
|
});
|
||||||
}, [socket]);
|
}, [socket]);
|
||||||
|
|
||||||
let values = {
|
let values = {
|
||||||
@@ -43,6 +53,7 @@ export default function SocketIOContextProvider({children}) {
|
|||||||
joinRoom,
|
joinRoom,
|
||||||
setSocketMsgReceived,
|
setSocketMsgReceived,
|
||||||
socketMsgReceived,
|
socketMsgReceived,
|
||||||
|
marketUpdate,
|
||||||
// room,
|
// room,
|
||||||
// setRoom,
|
// setRoom,
|
||||||
// message,
|
// message,
|
||||||
|
|||||||
@@ -188,17 +188,19 @@ const AssignTaskPopout = React.memo(
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(details);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ModalCom action={action} situation={situation}>
|
<ModalCom action={action} situation={situation}>
|
||||||
<div className="w-11/12 lg:w-[700px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="w-11/12 lg:w-[700px] bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="w-full flex items-center justify-between lg:px-10 lg:py-8 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide flex items-center">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide flex items-center">
|
||||||
<>
|
{details ? (
|
||||||
Assign task to{" "}
|
` Assign ${details?.firstname}'s Task`
|
||||||
{pathname === "/acc-family/activities" ? (
|
) : familyDetailsData ? (
|
||||||
|
` Assign ${familyDetailsData.firstname}'s Task`
|
||||||
|
) : (
|
||||||
|
<div className="flex items-center">
|
||||||
|
Assign task to{" "}
|
||||||
<div className="w-[270px] h-[40px] ml-2">
|
<div className="w-[270px] h-[40px] ml-2">
|
||||||
<select
|
<select
|
||||||
name=""
|
name=""
|
||||||
@@ -213,10 +215,8 @@ const AssignTaskPopout = React.memo(
|
|||||||
{familyList}
|
{familyList}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
</div>
|
||||||
<>{familyDetailsData?.firstname || details?.firstName}</>
|
)}
|
||||||
)}
|
|
||||||
</>
|
|
||||||
</h1>
|
</h1>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -443,9 +443,11 @@ const AssignTaskPopout = React.memo(
|
|||||||
onClick={assignFamilyTask}
|
onClick={assignFamilyTask}
|
||||||
className="px-1 w-40 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white cursor-pointer"
|
className="px-1 w-40 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white cursor-pointer"
|
||||||
>
|
>
|
||||||
{`Assign to ${
|
{details
|
||||||
familyDetailsData?.firstname || details?.firstName
|
? `Assign task to ${details?.firstname}`
|
||||||
}`}
|
: familyDetailsData
|
||||||
|
? `Assign task to ${familyDetailsData.firstname}`
|
||||||
|
: "Assign"}
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
|
|||||||
<ModalCom action={onClose} situation={situation}>
|
<ModalCom action={onClose} situation={situation}>
|
||||||
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
<div className="logout-modal-wrapper lw-[90%] md:w-[768px] h-full lg:h-auto bg-white dark:bg-dark-white lg:rounded-2xl overflow-y-auto">
|
||||||
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
<div className="logout-modal-header w-full flex items-center justify-between lg:p-6 px-[30px] py-[23px] border-b dark:border-[#5356fb29] border-light-purple">
|
||||||
<h1 className="text-base md:text-lg font-bold text-dark-gray dark:text-white tracking-wide">
|
<h1 className="text-26 font-bold text-dark-gray dark:text-white tracking-wide">
|
||||||
{isManageFamilyPage
|
{isManageFamilyPage
|
||||||
? `${state?.firstname}'s Suggested Task`
|
? `${state?.firstname}'s Suggested Task`
|
||||||
: isActivitiesPage
|
: isActivitiesPage
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import InputCom from "../Helpers/Inputs/InputCom/index";
|
|||||||
import ModalCom from "../Helpers/ModalCom";
|
import ModalCom from "../Helpers/ModalCom";
|
||||||
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||||
import Detail from "./popoutcomponent/Detail";
|
import Detail from "./popoutcomponent/Detail";
|
||||||
|
import { SocketValues } from "../Contexts/SocketIOContext";
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
family: Yup.string().required("This is required "),
|
family: Yup.string().required("This is required "),
|
||||||
@@ -29,6 +30,9 @@ function JobListPopout({
|
|||||||
openWallet,
|
openWallet,
|
||||||
setWalletItem,
|
setWalletItem,
|
||||||
}) {
|
}) {
|
||||||
|
|
||||||
|
let {marketUpdate} = SocketValues() // destructures 'SEND MESSAGE' and 'JOIN ROOM' FUNCTIONS FROM SOCKET
|
||||||
|
|
||||||
const [selectedTab, setSelectedTab] = useState("public");
|
const [selectedTab, setSelectedTab] = useState("public");
|
||||||
const tabs = ["public", "individual", "group"];
|
const tabs = ["public", "individual", "group"];
|
||||||
|
|
||||||
@@ -201,7 +205,9 @@ function JobListPopout({
|
|||||||
setRequestStatus({ message: "", status: false });
|
setRequestStatus({ message: "", status: false });
|
||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
dispatch(tableReload({ type: "JOBTABLE" }));
|
marketUpdate('market', 'full-markets-jobs') // sends an event to the socket to update market lists
|
||||||
|
dispatch(tableReload({ type: "JOBTABLE" })); // reloads my job page
|
||||||
|
dispatch(tableReload({ type: "MARKETTABLELIST" })); // reloads market page
|
||||||
setRequestStatus({ message: data?.status_msg ? data?.status_msg : "Offer Assigned Successful", status: true });
|
setRequestStatus({ message: data?.status_msg ? data?.status_msg : "Offer Assigned Successful", status: true });
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setLoader({ jobFields: false });
|
setLoader({ jobFields: false });
|
||||||
@@ -224,6 +230,12 @@ function JobListPopout({
|
|||||||
members: [],
|
members: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const DetailsSection = ({ label, value }) => (
|
||||||
|
<div className="my-3 md:flex">
|
||||||
|
<Detail label={label} value={value} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
// FUNCTION TO POPULATE USER GROUP LIST
|
// FUNCTION TO POPULATE USER GROUP LIST
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// setGroupList({loading: true, groups: [], members: []})
|
// setGroupList({loading: true, groups: [], members: []})
|
||||||
@@ -250,12 +262,6 @@ function JobListPopout({
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const DetailsSection = ({ label, value }) => (
|
|
||||||
<div className="my-3 md:flex">
|
|
||||||
<Detail label={label} value={value} />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
|
|
||||||
const DetailsComponent = () => {
|
const DetailsComponent = () => {
|
||||||
const detailsArray = [
|
const detailsArray = [
|
||||||
{ label: "Description", value: details.description },
|
{ label: "Description", value: details.description },
|
||||||
|
|||||||
@@ -14,8 +14,12 @@ import { updateWalletDetails } from "../store/walletDetails";
|
|||||||
import { familyBannersList } from "../store/FamilyBannerList";
|
import { familyBannersList } from "../store/FamilyBannerList";
|
||||||
import { familyResources } from "../store/FamilyResources";
|
import { familyResources } from "../store/FamilyResources";
|
||||||
import {familyWalletRedeemOptList} from '../store/FamilyWalletRedeemOpt'
|
import {familyWalletRedeemOptList} from '../store/FamilyWalletRedeemOpt'
|
||||||
|
import { SocketValues } from "../components/Contexts/SocketIOContext";
|
||||||
|
|
||||||
const AuthRoute = ({ redirectPath = "/login", children }) => {
|
const AuthRoute = ({ redirectPath = "/login", children }) => {
|
||||||
|
|
||||||
|
let {joinRoom} = SocketValues() // destructures 'SEND MESSAGE' and 'JOIN ROOM' FUNCTIONS FROM SOCKET
|
||||||
|
|
||||||
const apiCall = useMemo(() => new usersService(), []);
|
const apiCall = useMemo(() => new usersService(), []);
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const [lastActivityTime, setLastActivityTime] = useState(Date.now());
|
const [lastActivityTime, setLastActivityTime] = useState(Date.now());
|
||||||
@@ -23,7 +27,7 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
|
|||||||
const [loadProfileDetails, setLoadProfileDetails] = useState([]);
|
const [loadProfileDetails, setLoadProfileDetails] = useState([]);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const { jobListTable, walletTable, familyBannersListTable } = useSelector(
|
const { jobListTable, marketTableList, walletTable, familyBannersListTable } = useSelector(
|
||||||
(state) => state.tableReload
|
(state) => state.tableReload
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -219,7 +223,7 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
getMarketActiveJobList();
|
getMarketActiveJobList();
|
||||||
}, [apiCall, dispatch, jobListTable, isLogin.status]);
|
}, [apiCall, dispatch, marketTableList, isLogin.status]);
|
||||||
|
|
||||||
//FUNCTION TO GET COMMON HEAD DATA
|
//FUNCTION TO GET COMMON HEAD DATA
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -309,6 +313,10 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
|
|||||||
familyWalletRedeemOptions()
|
familyWalletRedeemOptions()
|
||||||
}, [isLogin.status]);
|
}, [isLogin.status]);
|
||||||
|
|
||||||
|
useEffect(()=>{ // sends an event to the socket to enable user join a room to be able to receive update when jobs enters the market
|
||||||
|
joinRoom('full-markets-jobs')
|
||||||
|
},[isLogin.status])
|
||||||
|
|
||||||
|
|
||||||
// RENDER PAGE
|
// RENDER PAGE
|
||||||
return isLogin.loading && !loggedIn ? (
|
return isLogin.loading && !loggedIn ? (
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ const initialState = {
|
|||||||
uploadsTable: false,
|
uploadsTable: false,
|
||||||
familyBannersListTable: false,
|
familyBannersListTable: false,
|
||||||
chatMessageList: false,
|
chatMessageList: false,
|
||||||
|
marketTableList: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const tableReloadSlice = createSlice({
|
export const tableReloadSlice = createSlice({
|
||||||
@@ -45,6 +46,9 @@ export const tableReloadSlice = createSlice({
|
|||||||
case "CHATMESSAGELIST":
|
case "CHATMESSAGELIST":
|
||||||
state.chatMessageList = !state.chatMessageList;
|
state.chatMessageList = !state.chatMessageList;
|
||||||
return;
|
return;
|
||||||
|
case "MARKETTABLELIST":
|
||||||
|
state.marketTableList = !state.marketTableList;
|
||||||
|
return;
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user