From 1e28a0e15b0e1c735d2403c4d8e8e72f49ea81b3 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Wed, 20 Mar 2024 13:43:23 +0100 Subject: [PATCH 1/2] made kid wallet refresh when parent transfers cash --- src/components/Contexts/SocketIOContext.js | 3 ++ .../FamilyAcc/Tabs/FamilyWallet.jsx | 4 ++- .../Tabs/wallet/FamilyAddFundPopout.jsx | 28 +++++++++++++++---- src/components/MyWallet/FamilyWalletCon.jsx | 5 +++- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/components/Contexts/SocketIOContext.js b/src/components/Contexts/SocketIOContext.js index bf07241..6b13e81 100644 --- a/src/components/Contexts/SocketIOContext.js +++ b/src/components/Contexts/SocketIOContext.js @@ -65,6 +65,9 @@ export default function SocketIOContextProvider({children}) { if(message.action == "REFRESH_TASK" && message.audience == "PARENT"){ // for refreshing parent account when child accepts or rejects a job dispatch(tableReload({type:'PARENTFAMILYTASKLIST'})) // dispatches to update parent family task list on parent side } + if(message.action == "REFRESH_WALLET" && message.family_uid == user_uid && message.audience == "MEMBER"){ // for refreshing child wallet account when parent sends money to kid + dispatch(tableReload({type:'WALLETTABLE'})) // dispatches to update wallet balance on family side + } // console.log('DATA', data) }); }, [socket]); diff --git a/src/components/FamilyAcc/Tabs/FamilyWallet.jsx b/src/components/FamilyAcc/Tabs/FamilyWallet.jsx index f2f51c2..6c9e844 100644 --- a/src/components/FamilyAcc/Tabs/FamilyWallet.jsx +++ b/src/components/FamilyAcc/Tabs/FamilyWallet.jsx @@ -15,8 +15,10 @@ function FamilyWallet({familyData}) { useEffect(()=>{ setFamilyWallet({loading:true, data: []}) - apiUrl.getFamilyWallet({family_uid:familyData?.uid}).then(res => { + apiUrl.getFamilyWallet({family_uid:'282ceaea-f621-4477-91e7-b1c6ec907762', uid:'282ceaea-f621-4477-91e7-b1c6ec907762', member_id:familyData?.family_member_id}).then(res => { setFamilyWallet({loading:false, data: res?.data?.result_list || []}) + console.log('familyData', familyData, res?.data?.result_list) + }).catch(error => { setFamilyWallet({loading:false, data: []}) }) diff --git a/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx b/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx index 5793e06..212b159 100644 --- a/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx +++ b/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx @@ -9,8 +9,9 @@ import usersService from "../../../../services/UsersService"; import LoadingSpinner from "../../../Spinners/LoadingSpinner"; import { PriceFormatter } from "../../../Helpers/PriceFormatter"; import { tableReload } from "../../../../store/TableReloads"; -import { useDispatch } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import { apiConst } from "../../../../lib/apiConst"; +import { SocketValues } from "../../../Contexts/SocketIOContext"; const validationSchema = Yup.object().shape({ // amount: Yup.string() @@ -30,6 +31,11 @@ const validationSchema = Yup.object().shape({ }); function FamilyAddFundPopout({ action, situation, wallet, familyData }) { + + const {userDetails} = useSelector((state) => state?.userDetails); // Gets User Detail + + const { parentAssignJobToKid } = SocketValues() // socket emit event from FULL account + const dispatch = useDispatch(); const apiUrl = new usersService(); @@ -54,6 +60,7 @@ function FamilyAddFundPopout({ action, situation, wallet, familyData }) { }; // FUNCTION TO PERFORM FAMILY TRANSFER const handleAddFund = (values) => { + setRequestStatus({ loading: true, status: false, message: "" }); let senderBal = startTransfer?.data?.origing_current_balance || ""; // SENDER'S ACCOUNT BALANCE @@ -132,6 +139,17 @@ function FamilyAddFundPopout({ action, situation, wallet, familyData }) { status: true, message: "Transfer Successful", }); + + //SENDS MESSAGE TO SOCKET TO UPDATE CHILD ACCOUNT + // message, room + let socketMsg = { + "audience": "MEMBER", + "action": "REFRESH_WALLET", + "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: "" }); dispatch(tableReload({ type: "WALLETTABLE" })); // UPDATES PARENT WALLET ACCOUNT @@ -170,13 +188,13 @@ function FamilyAddFundPopout({ action, situation, wallet, familyData }) { return (
-
-

+
+

Add Fund