Compare commits

..

4 Commits

Author SHA1 Message Date
victorAnumudu 70ada36c00 wallet header dropdown fixed 2024-11-02 06:31:47 +01:00
ameye e6e41de965 Merge branch 'virtual-wallet-country-fix' of WrenchBoard/Users-Wrench into master 2024-11-01 21:30:57 +00:00
victorAnumudu 0fbbf38d6c virtual card country fixed 2024-11-01 22:27:24 +01:00
ameye 040c79e2e5 Merge branch 'wallet-card-update' of WrenchBoard/Users-Wrench into master 2024-10-31 17:02:04 +00:00
7 changed files with 65 additions and 7 deletions
+2 -1
View File
@@ -15,9 +15,10 @@ export default function MarketPlace({ commonHeadData }) {
const marketData = jobLists?.result_list;
const categories = jobLists?.categories;
const image_server = jobLists?.session_image_server;
console.log('Lenth', marketData?.length )
useEffect(()=>{
if(marketData?.length < 1 && !jobLists.loading){
if(!jobLists.loading && (marketData?.length < 1 || !marketData)){
dispatch(tableReload({ type: "MARKETTABLELIST" })); // reloads market page
}
},[])
+10 -1
View File
@@ -1,11 +1,14 @@
import React, { useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { useSelector, useDispatch } from "react-redux";
import usersService from "../../services/UsersService";
import Layout from "../Partials/Layout";
import LoadingSpinner from "../Spinners/LoadingSpinner";
import WalletBox from "./WalletBox";
import { tableReload } from '../../store/TableReloads';
const WalletRoutes = () => {
const dispatch = useDispatch()
const apiCall = new usersService();
const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
const { walletTable } = useSelector((state) => state.tableReload);
@@ -60,6 +63,12 @@ const WalletRoutes = () => {
getPaymentHistory();
}, [walletTable]);
useEffect(()=>{
if(!walletDetails.loading && walletDetails?.data?.length < 1){
dispatch(tableReload({ type: "WALLETTABLE" })); // reloads wallet page
}
},[])
return (
<Layout>
<WalletBox
+16 -3
View File
@@ -3,6 +3,7 @@ import usersService from "../../services/UsersService";
import ConfirmNairaWithdraw from "./Popup/ConfirmNairaWithdraw";
import NairaWithdraw from "./Popup/NairaWithdraw";
import VirtualAddCardPopout from "./walletvirtual/VirtualAddCardPopout";
import WalletExtraActionBtn from "./WalletExtraActionBtn";
function WalletAction({ walletItem, payment, openPopUp }) {
@@ -38,15 +39,27 @@ function WalletAction({ walletItem, payment, openPopUp }) {
<div className="w-1/2 flex justify-start items-center">
<button
onClick={() => {
walletItem.code == 'NAIRA' ? setShowNairaWithdraw((prev) => ({ ...prev, show: true })) : openVirtualPopUp({walletItem})
walletItem?.code == 'NAIRA' ?
setShowNairaWithdraw((prev) => ({ ...prev, show: true }))
: walletItem?.code == 'USD' ?
openVirtualPopUp({walletItem})
:
()=>{}
}}
className={`${
walletItem.code != "NAIRA" && ""
walletItem?.code != "NAIRA" && ""
} logout-btn btn-gradient text-white`}
>
{/* Spend */}
{walletItem.code == 'NAIRA' ? walletItem?.extra_actions?.SPEND_FROM_BALANCE[0]?.text : walletItem?.extra_actions?.ADD_VIRTUAL_CARD[0]?.text}
{walletItem?.code == 'NAIRA' ?
walletItem?.extra_actions?.SPEND_FROM_BALANCE[0]?.text
: walletItem?.code == 'USD' ?
walletItem?.extra_actions?.ADD_VIRTUAL_CARD[0]?.text
:
'View'
}
</button>
{/* <WalletExtraActionBtn /> // TO BE USED lATER */}
</div>
<div className="w-1/2 flex justify-end items-center">
<button
@@ -0,0 +1,18 @@
import React from 'react'
export default function WalletExtraActionBtn() {
return (
<>
{/* <button
onClick={() => {
walletItem?.code == 'NAIRA' ? setShowNairaWithdraw((prev) => ({ ...prev, show: true })) : openVirtualPopUp({walletItem})
}}
className={`${
walletItem?.code != "NAIRA" && ""
} logout-btn btn-gradient text-white`}
>
{walletItem?.code == 'NAIRA' ? walletItem?.extra_actions?.SPEND_FROM_BALANCE[0]?.text : walletItem?.extra_actions?.ADD_VIRTUAL_CARD[0]?.text}
</button> */}
</>
)
}
+17 -1
View File
@@ -58,12 +58,27 @@ export default function WalletHeader(props) {
props.myWalletList.map((value, index) =>
{
let image = value.code ? `${value.code.toLocaleLowerCase()}.svg` : 'default.png'
return(
<li
key={index}
key={value?.wallet_uid || index}
className="content-item py-4 border-b dark:border-[#5356fb29] border-light-purple hover:border-purple dark:hover:border-purple"
onClick={onWalletClick}
>
{value?.brand && value?.card_last4 ? // FOR VIRTUAL CARD NUMBER ELSE WALLET BALANCE DISPLAY
<div className="w-full">
<div className="account-name flex space-x-4 items-center mb-2 sm:mb-0">
<div className="icon w-14 h-14 transition duration-300 ease-in-out rounded-full flex justify-center items-center bg-light-purple dark:bg-dark-light-purple ">
<img src={value.icon} className="w-14 h-14" alt="currency icon" />
</div>
<div className="name">
<p className="text-2xl font-bold text-dark-gray dark:text-white">
{value.brand} <span> **** **** ***** </span> {value?.card_last4}
</p>
</div>
</div>
</div>
:
<div className="sm:flex justify-between items-center">
<div className="account-name flex space-x-4 items-center mb-2 sm:mb-0">
<div className="icon w-14 h-14 transition duration-300 ease-in-out rounded-full flex justify-center items-center bg-light-purple dark:bg-dark-light-purple ">
@@ -81,6 +96,7 @@ export default function WalletHeader(props) {
</p>
</div>
</div>
}
</li>
)
}
@@ -45,7 +45,7 @@ const VirtualAddCardPopout = ({ details, onClose, situation, walletItem }) => {
const { userDetails } = useSelector((state) => state.userDetails);
const countryCode = userDetails?.country
const countryCode = walletItem?.country
const userApi = new usersService()
+1
View File
@@ -211,6 +211,7 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
getMyJobList();
}, [jobListTable, isLogin.status]);
//FUNCTION TO GET FULL USER WALLETS
useEffect(() => {
if((!loggedIn && !isLogin.status) || account_type == 'FAMILY'){ // DO NOT CALL THIS, IF USER ACCOUNT TYPE IS FAMILY
return