From 568b2f716a2fb9048a369285e8d5a9f6ca752b4b Mon Sep 17 00:00:00 2001 From: "Siddhesh.More" Date: Fri, 16 Aug 2024 15:02:02 +0530 Subject: [PATCH] finalUpdate Fri 16 Aug --- src/Components/CurrencyInput.jsx | 6 +-- src/Components/HeaderMain.jsx | 10 +++- src/Components/MobileView.jsx | 36 ++++++++----- src/Constants/Constants.js | 45 ++++++++++++++++ src/Layout/DefaultLayout.jsx | 24 +++++++++ .../Deposit/DepositRequest/DepositRequest.jsx | 15 ++++-- .../DepositRequest/DepositRequestApprove.jsx | 2 +- .../DepositViewHistory/DepositHistory.jsx | 6 +-- .../IO_Management/CreateIO/IOArtifacts.jsx | 12 +++++ .../IO_Management/CreateIO/IODetails.jsx | 19 ++++--- src/Pages/IO_Management/IOArtifactsAdd.jsx | 51 +++++++++++++++--- .../ViewIO/HeaderModal/UpdateIOStatus.jsx | 13 ++--- .../IO_Management/ViewIO/ViewIOTable.jsx | 45 ++++++++++------ src/Pages/IO_Management/ViewIO/ViewIOdata.jsx | 13 ++++- .../IO_Management/ViewIO/ViewIOdataHeader.jsx | 12 ++--- .../IO_Management/ViewIO/ViewIOdetails.jsx | 15 ++++-- .../Master/ExchangeRate/EditExchangeRate.jsx | 14 +++-- src/Pages/UnderConstruction.jsx | 4 +- src/Services/deposit.request.service.js | 8 +-- src/Services/io.service.js | 2 +- src/assets/commingsoon.png | Bin 0 -> 90250 bytes 21 files changed, 262 insertions(+), 90 deletions(-) create mode 100644 src/assets/commingsoon.png diff --git a/src/Components/CurrencyInput.jsx b/src/Components/CurrencyInput.jsx index 7aea90c..c6fb280 100644 --- a/src/Components/CurrencyInput.jsx +++ b/src/Components/CurrencyInput.jsx @@ -3,13 +3,13 @@ import { Input } from "@chakra-ui/react"; export const formatCurrency = (value) => { if (!value) return ''; - const [integer, decimal] = value.split('.'); - const formattedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ','); + const [integer, decimal] = value?.split('.'); + const formattedInteger = integer?.replace(/\B(?=(\d{3})+(?!\d))/g, ','); return decimal ? `${formattedInteger}.${decimal}` : formattedInteger; }; const CurrencyInput = forwardRef(({ value, onChange, ...props }, ref) => { - console.log(props); + const handleChange = (event) => { diff --git a/src/Components/HeaderMain.jsx b/src/Components/HeaderMain.jsx index 167754d..e10cac6 100644 --- a/src/Components/HeaderMain.jsx +++ b/src/Components/HeaderMain.jsx @@ -1,8 +1,9 @@ -import { AddIcon } from "@chakra-ui/icons"; +import { AddIcon, ArrowBackIcon } from "@chakra-ui/icons"; import { Avatar, Box, Button, + HStack, Popover, PopoverArrow, PopoverBody, @@ -14,13 +15,14 @@ import { useColorMode, } from "@chakra-ui/react"; import React, { useContext } from "react"; -import { Link } from "react-router-dom"; +import { Link, useNavigate } from "react-router-dom"; import { IoMdDownload } from "react-icons/io"; import * as XLSX from "xlsx"; import profile from "../assets/proavatar.webp"; import GlobalStateContext from "../Contexts/GlobalStateContext"; import { MdOutlineDarkMode, MdOutlineLightMode } from "react-icons/md"; import logoMini from "../assets/propic.png" +import { BsBack } from "react-icons/bs"; const HeaderMain = ({ link, @@ -30,6 +32,7 @@ const HeaderMain = ({ logOutHandler, slideDirecttion, }) => { + const navigate = useNavigate() const { colorMode, toggleColorMode } = useContext(GlobalStateContext); @@ -42,6 +45,8 @@ const HeaderMain = ({ zIndex={999} > + + {/* navigate(-1)} /> */} */} {title} + diff --git a/src/Components/MobileView.jsx b/src/Components/MobileView.jsx index be6b8a5..d0a4262 100644 --- a/src/Components/MobileView.jsx +++ b/src/Components/MobileView.jsx @@ -2,6 +2,7 @@ import { Box, Button, Heading, + HStack, Image, Modal, ModalContent, @@ -20,16 +21,25 @@ import { LuClock } from "react-icons/lu"; const MobileView = ({ isOpen, onClose, finalRef }) => { return ( -
- - - + + + + + + display={'flex'} + justifyContent={'center'} + h={"600px"} + w={"330px"} + > { /> @@ -207,9 +218,10 @@ const MobileView = ({ isOpen, onClose, finalRef }) => { + + -
); }; diff --git a/src/Constants/Constants.js b/src/Constants/Constants.js index c09566b..8a5decd 100644 --- a/src/Constants/Constants.js +++ b/src/Constants/Constants.js @@ -2,6 +2,34 @@ import dns from "node:dns" + + +export function getTomorrowDate() { + const today = new Date(); + const tomorrow = new Date(today); + tomorrow.setDate(today.getDate() + 1); + + // Format the date as YYYY-MM-DD (ISO 8601) + return tomorrow.toISOString().split('T')[0]; +} + + +export function removeTrailingZeros(value) { + // Convert the value to a number and then to a string + let number = parseFloat(value); + let result = number.toString(); + + // Check if the result contains a decimal point + if (result.includes('.')) { + // Remove trailing zeros if the decimal part is 0 or 00 + result = result.replace(/(\.\d*?)0+$/, '$1'); // Remove trailing zeros + result = result.replace(/\.$/, ''); // Remove the decimal point if it's the last character + } + + return result; +} + + export function getCountdownTimer(utcDateString) { // Parse the UTC datetime string into a Date object const targetDate = new Date(utcDateString); @@ -85,3 +113,20 @@ export async function checkEmailValidity(email) { return false; // Error occurred } } + + +// Function to convert timestamp to readable date format in Gulf timezone +export function formatTimestampInGulfTimezone(timestamp) { + const date = new Date(timestamp); + const options = { + year: 'numeric', + month: 'long', + day: 'numeric', + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + timeZone: 'Asia/Dubai', // Gulf Standard Time (GST) timezone + timeZoneName: 'short' + }; + return date.toLocaleDateString('en-GB', options); +} diff --git a/src/Layout/DefaultLayout.jsx b/src/Layout/DefaultLayout.jsx index a0c05f8..405d59c 100644 --- a/src/Layout/DefaultLayout.jsx +++ b/src/Layout/DefaultLayout.jsx @@ -188,6 +188,30 @@ const DashboardLayout = ({ isOnline }) => { Investor Transactions ); + + + + + case path.startsWith("/deposit-request"): + return ( + + + Deposite pending request + + ); + case path.startsWith("/deposit-history"): + return ( + + + Deposite withdrawal request + + ); + + + + + + case path.startsWith("/withdraw-request"): return ( diff --git a/src/Pages/Deposit/DepositRequest/DepositRequest.jsx b/src/Pages/Deposit/DepositRequest/DepositRequest.jsx index d428265..c5f6f22 100644 --- a/src/Pages/Deposit/DepositRequest/DepositRequest.jsx +++ b/src/Pages/Deposit/DepositRequest/DepositRequest.jsx @@ -35,6 +35,8 @@ import NormalTable from "../../../Components/DataTable/NormalTable"; import { useGetDepositRequestQuery } from "../../../Services/deposit.request.service"; import { current } from "@reduxjs/toolkit"; import { TABLE_PAGINATION } from "../../../Constants/Paginations"; +import { removeTrailingZeros } from "../../../Constants/Constants"; +import { formatCurrency } from "../../../Components/CurrencyInput"; const formatDate = (date) => new Date(date).toLocaleDateString(); // Simple date formatter @@ -100,7 +102,7 @@ const DepositRequest = () => { // ====================================================[Table Filter]================================================================ const filteredData = data?.data?.rows.filter((item) => { // Filter by name (case insensitive) - const name = [item.firstName, item.lastName, item.countryName].filter(Boolean).join(' '); + const name = [item.firstName, item.lastName, item.countryName].filter(Boolean).join(' '); const searchLower = searchTerm.toLowerCase(); const nameMatches = name.toLowerCase().includes(searchLower); @@ -116,6 +118,9 @@ const DepositRequest = () => { return nameMatches; }); + console.log(data?.data?.rows); + + const extractedArray = filteredData?.map((item, index) => ({ // id: item?.id, "Sr.no": ( @@ -171,9 +176,9 @@ const DepositRequest = () => {
), "Amount in Investor currency": ( - + - {item?.investorAmount} + {formatCurrency(removeTrailingZeros(item?.investorAmount))} {item?.currencyCode} ), @@ -240,7 +245,7 @@ const DepositRequest = () => { onRejectOpen(); }} py={1} - // variant={"solid"} + // variant={"solid"} > @@ -323,7 +328,7 @@ const DepositRequest = () => { isOpen={isConfirmOpen} onClose={onConfirmClose} id={actionId} - // firstField={firstField} + // firstField={firstField} /> - Upload Supporting* + Upload Supporting { // ====================================================[Table Setup]================================================================ const tableHeadRow = [ - "Sr.no", + // "Sr.no", "Client ID", "First Name", "Last Name", @@ -162,10 +162,10 @@ const filteredData = data?.data?.rows.filter((item) => { ), "Amount in Investor currency": ( - + {/* */} - {item?.investorAmount} + {item?.investorAmount} {item?.currencyCode} {/* */} diff --git a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx index 3e2695f..72ad3e8 100644 --- a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx +++ b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx @@ -7,6 +7,7 @@ import { Text, Tooltip, useDisclosure, + useToast, } from "@chakra-ui/react"; import React, { useContext, useEffect, useRef, useState } from "react"; import DataTable from "../../../Components/DataTable/DataTable"; @@ -30,8 +31,10 @@ import { } from "../../../Services/io.service"; import { getFileNameFromPath } from "../../../Constants/Constants"; import ImageViewer from "../../../Components/ImageViewer"; +import ToastBox from "../../../Components/ToastBox"; const IOArtifacts = ({ enableNextTab, index, data }) => { + const toast = useToast() const params = useParams(); const id = params?.id; @@ -110,6 +113,9 @@ const IOArtifacts = ({ enableNextTab, index, data }) => { if (res?.data?.statusCode === 200) { setDeleteAlertVideo(false); setIsLoadingBtn(false); + toast({ + render: () => , + }); } } catch (error) { console.log(error); @@ -120,9 +126,15 @@ const IOArtifacts = ({ enableNextTab, index, data }) => { setIsLoadingBtn(true); try { const res = await deleteImageArtifacts(id); + console.log(res); + if (res?.data?.statusCode === 200) { setDeleteAlertImage(false); setIsLoadingBtn(false); + toast({ + render: () => , + }); + } } catch (error) { console.log(error); diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx index e828255..8425d95 100644 --- a/src/Pages/IO_Management/CreateIO/IODetails.jsx +++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx @@ -34,6 +34,7 @@ import qatar from "../../../assets/qatar_flag.png"; import uae from "../../../assets/uae_flag.png"; import saudi from "../../../assets/saudi_arabia_flag.png"; import { formatDatee } from "../../../Components/FormField"; +import { removeTrailingZeros } from "../../../Constants/Constants"; const schema = yup.object().shape({ investmentNameEnglish: yup @@ -153,22 +154,24 @@ const IODetails = ({ enableNextTab, index, data }) => { }); const miniValue = data?.country?.map( - ({ countryName, flagIcon, minInvestmentAmt, countryCode, id }, index) => { + ({ countryName, flagIcon, minInvestmentAmt, countryCode, id, currency }, index) => { return { id:id, country: countryName, value: minInvestmentAmt, logo: flagIcon, - curr: countryCode, + curr: currency?.currencyCode, }; } ); - const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, country_xid})=>{ + + + const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, country_xid, })=>{ return{ id:country_xid, country: country?.countryName, - value: minInvestmentAmt, + value: removeTrailingZeros(minInvestmentAmt), logo: country?.flagIcon, curr: country?.countryCode, } @@ -206,7 +209,7 @@ const IODetails = ({ enableNextTab, index, data }) => { investmentNameArabic: IObyID?.data?.investmentNameArabic, descriptionEnglish: IObyID?.data?.descriptionEnglish, descriptionArabic: IObyID?.data?.descriptionArabic, - goalAmount: IObyID?.data?.goalAmount, + goalAmount: removeTrailingZeros(IObyID?.data?.goalAmount), closingDate: formatDatee(IObyID?.data?.closingDate), holdingPeriod: IObyID?.data?.holdingPeriod, ISIN: IObyID?.data?.ISIN, @@ -220,10 +223,10 @@ const IODetails = ({ enableNextTab, index, data }) => { }); } - - }, [id, IObyID]); + + // const minInvestmentById = @@ -351,7 +354,7 @@ const IODetails = ({ enableNextTab, index, data }) => { { label: "Goal Amount", placeHolder: "$00.00", - value: IObyID?.data?.goalAmount, + value: removeTrailingZeros(IObyID?.data?.goalAmount), name: "goalAmount", type: "number", isRequired: true, diff --git a/src/Pages/IO_Management/IOArtifactsAdd.jsx b/src/Pages/IO_Management/IOArtifactsAdd.jsx index 18a530b..1bac077 100644 --- a/src/Pages/IO_Management/IOArtifactsAdd.jsx +++ b/src/Pages/IO_Management/IOArtifactsAdd.jsx @@ -11,13 +11,15 @@ import { FormControl, FormErrorMessage, FormLabel, + Icon, Image, Input, Stack, + Text, useToast, } from "@chakra-ui/react"; import * as yup from "yup"; -import React, { useEffect, useState } from "react"; +import React, { useEffect, useRef, useState } from "react"; import { useForm, Controller } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import CustomAlertDialog from "../../Components/CustomAlertDialog"; @@ -27,6 +29,9 @@ import { } from "../../Services/io.service"; import { useParams } from "react-router-dom"; import ToastBox from "../../Components/ToastBox"; +import { bytesToMB } from "./InvestmentDocuments"; +import { formatTimestampInGulfTimezone } from "../../Constants/Constants"; +import { IoMdRemoveCircleOutline } from "react-icons/io"; const investmentImageSchema = yup.object().shape({ artifactName: yup.string().required("Artifact image name is required"), @@ -53,6 +58,7 @@ const IOArtifactsAdd = ({ const [updateImageArtifacts] = useUpdateImageArtifactsMutation(); const found = data?.find((item) => item?.id === actionId); + const fileInputRef = useRef(null); const { @@ -93,12 +99,15 @@ const IOArtifactsAdd = ({ toast({ render: () => , }); - reset(); setFile(null); setIsLoading(false); setAlert(false); setPreview(null); onClose(); + reset({ + artifactName: "", + artifactPathName: "", + }); } if (res?.error) { @@ -146,6 +155,8 @@ const IOArtifactsAdd = ({ reader.readAsDataURL(file); }; + + const handleSave = () => { handleSubmit(onSubmit)(); }; @@ -162,6 +173,18 @@ const IOArtifactsAdd = ({ setActionId(false); }; + + const handleRemove = () => { + + setFile(null) + setPreview(null) + // Reset the file input value + if (fileInputRef.current) { + fileInputRef.current.value = ""; + } + } + + return ( <> {!preview && @@ -214,12 +238,23 @@ const IOArtifactsAdd = ({ errors.artifactPathName?.message} {preview && ( - Image Preview + <> + Image Preview + + Name: {file?.name} + File size: {bytesToMB(file?.size)} + Last update: {formatTimestampInGulfTimezone(file?.lastModified)} + handleRemove()} _hover={{ bg: "gray.100" }} transition={'all 0-5s'} cursor={'pointer'} position={'absolute'} right={0} p={1} bottom={0} rounded={'lg'} boxSize={7} as={IoMdRemoveCircleOutline} /> + + )} {found && !preview && ( { const [selectedItem, setSelectedItem] = useState(); const [isLoadingg, setIsLoading] = useState(false); const [error, setError] = useState(""); - const [selectedStatusId, setSelectedStatusId] = useState(status?.[0]?.id); + const [selectedStatusId, setSelectedStatusId] = useState(''); const { data } = useGetIOprepopulateDataQuery(); const [updateStatusIo] = useUpdateStatusIoMutation(); - useEffect(() => { - setSelectedStatusId(status?.[0]?.id); - }, [status]); + // useEffect(() => { + // setSelectedStatusId(status?.[0]?.id); + // }, [status]); const handleMenuItemClick = (item, id) => { setSelectedItem(item); @@ -46,7 +46,7 @@ const UpdateIOStatus = ({ isOpen, onClose, status }) => { const handleSubmit = async () => { if (!selectedStatusId) { - setError("Status is required."); + setError("Please select status"); return; } setError(""); @@ -67,7 +67,8 @@ const UpdateIOStatus = ({ isOpen, onClose, status }) => { }; const handleClose = () => { - setSelectedItem("") + setSelectedItem(null) + setSelectedStatusId(null) onClose() } diff --git a/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx b/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx index 12d42ab..a4f164f 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx @@ -41,6 +41,8 @@ import { TABLE_PAGINATION } from "../../../Constants/Paginations"; import { formatCurrency } from "../../../Components/CurrencyInput"; import { IoIosPhonePortrait } from "react-icons/io"; import MobileView from "../../../Components/MobileView"; +import { ImMobile2 } from "react-icons/im"; +import { removeTrailingZeros } from "../../../Constants/Constants"; // import { debounce } from "./AddIOCharges"; const formatDate = (date) => new Date(date).toLocaleDateString(); // Simple date formatter @@ -74,7 +76,7 @@ const ViewIOTable = () => { page: currentPage, size: pageSize, }); - console.log(data); + // ===============================[ Table Header ] const tableHeadRow = [ @@ -85,7 +87,7 @@ const ViewIOTable = () => { "Goal Amount", "Holding Period", "IO Status", - "Priority", + // "Preview", "Action", ]; @@ -105,7 +107,6 @@ const ViewIOTable = () => { return nameMatches && statusMatches; }); - console.log(filteredData); const extractedArray = filteredData?.map((item, index) => ({ "IO ID": ( @@ -141,7 +142,7 @@ const ViewIOTable = () => { "Goal Amount": ( - {item.goalAmount ? formatCurrency(item.goalAmount) : "---"} + {item.goalAmount ? formatCurrency(removeTrailingZeros(item.goalAmount)) : "---"} ), @@ -187,23 +188,36 @@ const ViewIOTable = () => { ), - "Priority": ( - - - View - + "Preview": ( + + + + + + ), Action: ( - + > */} - + {/* */} - { > - + */} {/* { const handleDelete = () => {}; - console.log(extractedArray); return ( diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx index 88ac59f..37b49a8 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx @@ -45,6 +45,9 @@ const ViewIOdata = () => { const { isOpen, onOpen, onClose } = useDisclosure(); const navigate = useNavigate(); const [isEditing, setIsEditing] = useState(false); + const { IODetails, setIODetails } = useContext(GlobalStateContext); + console.log(IODetails?.isInvestedAmount); + const tabs = [ @@ -77,7 +80,13 @@ const ViewIOdata = () => { {tabs.map(({ label }, index) => ( { {tabs.map(({ content }, index) => ( - {content} + {content} ))} diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx index a0c3a2d..6c49f07 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx @@ -42,6 +42,7 @@ import { AddIcon } from "@chakra-ui/icons"; import { GrGallery } from "react-icons/gr"; import Loader01 from "../../../Components/Loaders/Loader01"; import { formatCurrency } from "../../../Components/CurrencyInput"; +import { removeTrailingZeros } from "../../../Constants/Constants"; const ViewIOdataHeader = ({data, isLoading}) => { const params = useParams(); @@ -157,11 +158,6 @@ const filteredMenu = menu?.filter(item => apiTransactionTitles?.includes(item.id - -console.log(IODetails?.ioNAV); -console.log(IODetails?.ioCash); -console.log(IODetails?.ioMVNAV); - @@ -298,7 +294,7 @@ console.log(IODetails?.ioMVNAV); IO NAV - {IODetails?.ioNAV ? formatCurrency(IODetails?.ioNAV) : "00.00"} + {IODetails?.ioNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioNAV)) : "00.00"} @@ -307,7 +303,7 @@ console.log(IODetails?.ioMVNAV); IO cash - {IODetails?.ioCash ? IODetails?.ioCash : "00.00"} + {IODetails?.ioCash ? formatCurrency(removeTrailingZeros(IODetails?.ioCash)) : "00.00"} @@ -316,7 +312,7 @@ console.log(IODetails?.ioMVNAV); IO MV NAV - {IODetails?.ioMVNAV ? formatCurrency(IODetails?.ioMVNAV) : "00.00"} + {IODetails?.ioMVNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioMVNAV)) : "00.00"} diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx index 015655f..42d0753 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx @@ -12,6 +12,7 @@ import * as yup from "yup"; import { yupResolver } from "@hookform/resolvers/yup"; import { formatDate } from "../../Master/Sponser/Sponsers"; import { formatCurrency } from "../../../Components/CurrencyInput"; +import { removeTrailingZeros } from "../../../Constants/Constants"; const schema = yup.object().shape({ investmentNameEnglish: yup @@ -105,7 +106,7 @@ const ViewIOdetails = () => { investmentNameArabic: IObyID?.data?.investmentNameArabic, descriptionEnglish: IObyID?.data?.descriptionEnglish, descriptionArabic: IObyID?.data?.descriptionArabic, - goalAmount: IObyID?.data?.goalAmount, + goalAmount: removeTrailingZeros(IObyID?.data?.goalAmount), closingDate: IObyID?.data?.closingDate, holdingPeriod: IObyID?.data?.holdingPeriod, ISIN: IObyID?.data?.ISIN, @@ -118,16 +119,20 @@ const ViewIOdetails = () => { } }, [id, IObyID]); - const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, id})=>{ + const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, currencyCode, id})=>{ return{ id:id, country: country?.countryName, - value: minInvestmentAmt, + value: removeTrailingZeros(minInvestmentAmt), logo: country?.flagIcon, - curr: country?.countryCode, + curr: currencyCode, } }) + + console.log(); + + //=======================[ Editor ] const formFields = [ { @@ -258,7 +263,7 @@ const ViewIOdetails = () => { { label: "Goal Amount", placeHolder: "$00.00", - value: IObyID?.data?.goalAmount ? formatCurrency(IObyID?.data?.goalAmount) : "---", + value: IObyID?.data?.goalAmount ? formatCurrency(removeTrailingZeros(IObyID?.data?.goalAmount)) : "---", name: "goalAmount", type: "number", isRequired: true, diff --git a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx index 4ea6b74..6b22beb 100644 --- a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx +++ b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx @@ -29,6 +29,9 @@ import { useUpdateExchangeRateMutation, } from "../../../Services/exchange.rate.service"; import ToastBox from "../../../Components/ToastBox"; +import { getTomorrowDate } from "../../../Constants/Constants"; + + // Convert date to YYYY-MM-DD format const formatDateValue = (date) => { @@ -73,9 +76,7 @@ const EditExchangeRate = ({ id, setIsLoading }) => { rate: rate, }; const res = await updateExchange({ data, id }); - console.log(res?.data?.statusCode); if (res?.data?.statusCode === 200) { - console.log("hit"); toast({ render: () => , }); @@ -88,7 +89,6 @@ const EditExchangeRate = ({ id, setIsLoading }) => { return ( <> - {" "} { + + Last effective date + + {formatDate(foundObject?.effectiveFrom)} + + Effective from - {formatDate(foundObject?.effectiveFrom)} + {formatDate(getTomorrowDate())} diff --git a/src/Pages/UnderConstruction.jsx b/src/Pages/UnderConstruction.jsx index 56bf614..8349eb6 100644 --- a/src/Pages/UnderConstruction.jsx +++ b/src/Pages/UnderConstruction.jsx @@ -1,7 +1,7 @@ import { Box, Image, Text } from '@chakra-ui/react' import React from 'react' // import noInternet from "../assets/Error.svg" -import robot from "../assets/under-construction.png" +import robot from "../assets/robot.png" const UnderConstruction = ({title, h}) => { return ( @@ -13,7 +13,7 @@ const UnderConstruction = ({title, h}) => { flexDirection={'column'} gap={8} > - + 🚧 Building Something Amazing Just for You! 🚧 ) diff --git a/src/Services/deposit.request.service.js b/src/Services/deposit.request.service.js index 019bd08..2d5ce13 100644 --- a/src/Services/deposit.request.service.js +++ b/src/Services/deposit.request.service.js @@ -9,7 +9,7 @@ import { baseQuery } from "./token.serivce"; export const depositRequest = createApi({ reducerPath: "depositRequest", baseQuery: baseQuery, - tagTypes: ["getDepositRequest"], + tagTypes: ["getDepositRequest", "getDepositHistory"], endpoints: (builder) => ({ getDepositRequest: builder.query({ query: () => `/deposit/admin/pending-requests`, @@ -26,7 +26,7 @@ export const depositRequest = createApi({ method: "PATCH", body: data, }), - invalidatesTags: ["getDepositRequest"], + invalidatesTags: ["getDepositRequest", "getDepositHistory"], }), depositReject: builder.mutation({ @@ -35,12 +35,12 @@ export const depositRequest = createApi({ method: "PATCH", body: data, }), - invalidatesTags: ["getDepositRequest"], + invalidatesTags: ["getDepositRequest", "getDepositHistory"], }), getDepositHistory: builder.query({ query: () => `/deposit/admin/history`, - // providesTags: ["getDepositHistory"], + providesTags: ["getDepositHistory"], }), }), }); diff --git a/src/Services/io.service.js b/src/Services/io.service.js index d200ff3..daa6f5e 100644 --- a/src/Services/io.service.js +++ b/src/Services/io.service.js @@ -50,7 +50,7 @@ export const ioService = createApi({ method: "PATCH", body: data, }), - invalidatesTags: ["getIOById", "getIO"], + invalidatesTags: ["getIOById", "getIO","prePopulate"], }), // =====[Key Merits] diff --git a/src/assets/commingsoon.png b/src/assets/commingsoon.png new file mode 100644 index 0000000000000000000000000000000000000000..e576b7849b3f9b6a808fac84a4d44a6f73bded4d GIT binary patch literal 90250 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 zΝ{3YIrr8V`LGxDg*Vw|Ptf6=Q7l*5x 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 literal 0 HcmV?d00001