diff --git a/src/App.css b/src/App.css index 04d8fe6..13b4daa 100644 --- a/src/App.css +++ b/src/App.css @@ -32,7 +32,8 @@ } .active { - background-color: #ced8e6a2; + background-color: #004717; + color: #fff; /* background-color: #e2e8f01c; */ } @@ -43,12 +44,14 @@ } .link:hover { - background-color: #ced8e6a2 !important; + background-color: #ced8e6a2; + /* color: #fff; */ /* background-color: #e2e8f01c !important; */ } .active:hover { - background-color: #ced8e6a2 !important; + background-color: #004717; + color: #fff; /* background-color: #e2e8f01c !important; */ } diff --git a/src/Components/HeaderMain.jsx b/src/Components/HeaderMain.jsx index 511cc4a..471f91c 100644 --- a/src/Components/HeaderMain.jsx +++ b/src/Components/HeaderMain.jsx @@ -20,7 +20,7 @@ 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/logo-min.png" +import logoMini from "../assets/propic.png" const HeaderMain = ({ link, @@ -82,7 +82,7 @@ const HeaderMain = ({ name="Tanami M" src={logoMini} bg={'green.100'} - p={1} + // p={1} /> { "IO Status": ( { placement="top" > { onClose={onClose} finalFocusRef={btnRef} > +
{ + e.preventDefault() + setAlert(true)}}> Edit rate + From - - {foundObject?.fromCurrency?.currencyCode} + {foundObject?.fromCurrency?.currencyCode} To - - {foundObject?.toCurrency?.currencyCode} + {foundObject?.toCurrency?.currencyCode} Effective from - {formatDate(foundObject?.effectiveFrom)} + + {formatDate(foundObject?.effectiveFrom)} + - + Rate { +
{ - if (!dateString) return "Invalid Date"; - let date = new Date(dateString); - if (isNaN(date.getTime())) { - // Try to handle different formats - const parts = dateString.split(/[- :]/); - if (parts.length >= 3) { - date = new Date(parts[0], parts[1] - 1, parts[2]); - } - } - if (isNaN(date.getTime())) { - return "Invalid Date"; - } - const options = { - weekday: "short", - year: "numeric", - month: "short", - day: "numeric", - }; - return date.toLocaleDateString("en-US", options); -}; +const ExchangeHistroy = () => { + const params = useParams(); + const id = params?.id; + const [searchTerm, setSearchTerm] = useState(""); -const ExchangeHistory = ({ id, setIsLoading, history }) => { - const btnRef = useRef(); - const { isOpen, onOpen, onClose } = useDisclosure(); - const { rateExchange, setRateExchange } = useContext(GlobalStateContext); + const { data, isLoading, errors } = useGetCurrencyHistoryByIdQuery(id, { + skip: !id, + }); - const foundObject = rateExchange.find((item) => item.id === id); + console.log(data?.data); - const [effectFrom, setEffectFrom] = useState(""); - const [effectTill, setEffectTill] = useState(""); - const [newRate, setNewRate] = useState(""); - const [alert, setAlert] = useState(false); + // ==============================[Table Filter]======================== - useEffect(() => { - if (foundObject) { - setEffectFrom(formatDate(foundObject.effectFrom)); - // setEffectTill(formatDate(foundObject.effectTill)); - setNewRate(foundObject.rate); - } - }, [foundObject]); + const filteredData = data?.data?.filter((item) => { + const name = item?.fromCurrency?.currencyName; + const searchLower = searchTerm?.toLowerCase(); + const nameMatches = name?.toLowerCase().includes(searchLower); + return nameMatches; + }); - // const handleSave = () => { - // setIsLoading(true); - // const updatedExchange = rateExchange.map((item) => - // item.id === id - // ? { - // ...item, - // effectFrom: new Date(effectFrom), - // rate: parseFloat(newRate), - // } - // : item - // ); - // setTimeout(() => { - // setRateExchange(updatedExchange); - // setIsLoading(false); - // setAlert(false); - // onClose(); - // }, 100); - // setIsLoading(true); - // }; + // ====================================================[Table Setup]================================================================ - return ( - <> - - - - - - - - Exchange History + {item.effectiveFrom} + + ), - - {/* - Previous exchange rate - {foundObject?.rate} - */} + "To date": ( + + + {item.effectiveTill} + + + ), - - {history && - history.map((entry, index) => { - // console.log("entry:", entry); - return ( - <> - {id === entry.id ? ( - - - - - Previous Rate: - - - {entry.previousRate}{" "} - - {foundObject?.toCurr} - - - + Currency: ( + + + {item.rate} + + + ), + })); - - - Effect Till: - - - {formatDate(entry.effectFrom)} - - - + return isLoading ? ( + + ) : ( + + + + {/* =======================[Search Input]======================== */} + + History :-{" "} + + {data?.data?.[0]?.fromCurrency?.currencyCode} + {" "} + to + + {data?.data?.[0]?.toCurrency?.currencyCode} + + - - - - New Rate: - - - {" "} - {entry?.newRate}{" "} - - {foundObject?.toCurr} - - - - - - Effect From: - - - {formatDate(entry.effectFrom)} - - - - - ) : ( - "" - )} - - ); - })} + setSearchTerm(e.target.value)} + /> + + - {/* - New Rate: - - - {" "} - {foundObject?.rate} {foundObject?.toCurr} - */} - - + {/* =================== [Data Table] ===================== */} - - - {/* - */} - - - - - setAlert(false)} - // alertHandler={handleSave} - message={"Are you sure you want to update rates?"} + - +
); }; -export default ExchangeHistory; +export default ExchangeHistroy; diff --git a/src/Pages/Master/ExchangeRate/ExchangeRate.jsx b/src/Pages/Master/ExchangeRate/ExchangeRate.jsx index 7e7bd81..cbc8253 100644 --- a/src/Pages/Master/ExchangeRate/ExchangeRate.jsx +++ b/src/Pages/Master/ExchangeRate/ExchangeRate.jsx @@ -21,7 +21,7 @@ import React, { useContext, useEffect, useState } from "react"; import { OPACITY_ON_LOAD } from "../../../Layout/animations"; import DataTable from "../../../Components/DataTable/DataTable"; import { HiDotsVertical } from "react-icons/hi"; -import { Link, Link as RouterLink } from "react-router-dom"; +import { Link, Link as RouterLink, useNavigate } from "react-router-dom"; import { AddIcon, EmailIcon } from "@chakra-ui/icons"; import Pagination from "../../../Components/Pagination"; import GlobalStateContext from "../../../Contexts/GlobalStateContext"; @@ -33,9 +33,11 @@ import ExchangeHistory from "./ExchangeHistroy"; import { useGetAllExchangeRatesQuery } from "../../../Services/exchange.rate.service"; import { TABLE_PAGINATION } from "../../../Constants/Paginations"; import NormalTable from "../../../Components/DataTable/NormalTable"; +import { MdHistory } from "react-icons/md"; const ExchangeRate = () => { const toast = useToast(); + const navigate = useNavigate() const { slideFromRight, rateExchange, setRateExchange } = useContext(GlobalStateContext); const [searchTerm, setSearchTerm] = useState(""); @@ -163,11 +165,32 @@ const ExchangeRate = () => { id={item.id} updateHistory={updateHistory} /> - + + + +
), })); diff --git a/src/Pages/Master/InvestmentType/InvestmentType.jsx b/src/Pages/Master/InvestmentType/InvestmentType.jsx index 9291de5..4e32d95 100644 --- a/src/Pages/Master/InvestmentType/InvestmentType.jsx +++ b/src/Pages/Master/InvestmentType/InvestmentType.jsx @@ -142,14 +142,15 @@ const InvestmentType = () => { placement="top" > @@ -167,8 +168,9 @@ const InvestmentType = () => { onClick={() => navigate(`/investment-type/add-investment/${item.id}`) } - _hover={{ color: "blue.500" }} - color="blue.400" + // _hover={{ color: "blue.500" }} + // color="blue.400" + colorScheme="blue" rounded={"sm"} size={"xs"} > @@ -189,8 +191,9 @@ const InvestmentType = () => { setActionId(item?.id); setDeleteAlert(true); }} - _hover={{ color: "red.500" }} - color="red.300" + // _hover={{ color: "red.500" }} + // color="red.300" + colorScheme="red" rounded={"sm"} size={"xs"} > diff --git a/src/Pages/Master/Sponser/Sponsers.jsx b/src/Pages/Master/Sponser/Sponsers.jsx index ac1d0e1..714f185 100644 --- a/src/Pages/Master/Sponser/Sponsers.jsx +++ b/src/Pages/Master/Sponser/Sponsers.jsx @@ -113,10 +113,11 @@ const Sponser = () => { > @@ -128,6 +129,7 @@ const Sponser = () => { label="Delete" bg="#fff" color={"red.500"} + placement="top" > diff --git a/src/Routes/Routes.js b/src/Routes/Routes.js index 647ed06..eead7b0 100644 --- a/src/Routes/Routes.js +++ b/src/Routes/Routes.js @@ -1,22 +1,16 @@ import DeletionHistory from "../Pages/AccountDeletion/DeletionHistory"; import DeletionRequest from "../Pages/AccountDeletion/DeletionRequest"; -// import Academy from "../Pages/Admin/Academy"; import BankDetails from "../Pages/Admin/BankDetails/BankDetails"; import BankInvestor from "../Pages/Admin/BankInvestor"; import Contact from "../Pages/Admin/Contact"; import Notification from "../Pages/Admin/Notification"; import Users from "../Pages/Admin/Users"; import CreateIO from "../Pages/IO_Management/CreateIO/CreateIO"; -// import CreateIO from "../Pages/IO_Management/InputComponents"; -import Create from "../Pages/IO_Management/InputComponents"; -import ViewIO from "../Pages/IO_Management/ViewIO/ViewIO"; -import View from "../Pages/IO_Management/ViewIO/ViewIO"; import ViewIOTable from "../Pages/IO_Management/ViewIO/ViewIOTable"; import ViewIOdata from "../Pages/IO_Management/ViewIO/ViewIOdata"; import InvestorPendingRequest from "../Pages/InvestorUpgrade/InvestorRequest"; import UpgradeHistory from "../Pages/InvestorUpgrade/UpgradeHistory"; -import upgradeHistory from "../Pages/InvestorUpgrade/UpgradeHistory"; import InvestorDetails from "../Pages/Investor_Management/InvestorDetails/InvestorDetails"; import InvestorTransactions from "../Pages/Investor_Management/InvestorTransactions"; import ProfileView from "../Pages/Investor_Management/InvestorDetails/ProfileView"; @@ -24,7 +18,6 @@ import ViewInvestorDetails from "../Pages/Investor_Management/InvestorDetails/Vi import ExchangeRate from "../Pages/Master/ExchangeRate/ExchangeRate"; import AddInvestmentType from "../Pages/Master/InvestmentType/AddInvestmentType"; import EditInvestmentType from "../Pages/Master/InvestmentType/EditInvestmentType"; -// import InvestmentType from "../Pages/Master/InvestmentType/InvestmentTypeOld"; import ViewInvestmentType from "../Pages/Master/InvestmentType/ViewInvestmentType"; import AddSponser from "../Pages/Master/Sponser/AddSponser"; import EditSponser from "../Pages/Master/Sponser/EditSponser"; @@ -32,12 +25,12 @@ import Sponser from "../Pages/Master/Sponser/Sponsers"; import ViewSponser from "../Pages/Master/Sponser/ViewSponser"; import PendingRequest from "../Pages/WithDrawal/PendingRequest"; import ViewHistory from "../Pages/WithDrawal/DrawalView/ViewHistory"; -// import DepositRequest from "../Pages/Deposit/DepositRequest"; import DepositHistory from "../Pages/Deposit/DepositViewHistory/DepositHistory"; import Academy from "../Pages/Admin/ManageAcademy/Academy"; import InvestmentType from "../Pages/Master/InvestmentType/InvestmentType"; import DepositRequest from "../Pages/Deposit/DepositRequest/DepositRequest"; import EditBankDetails from "../Pages/Admin/BankDetails/EditBankDetails"; +import ExchangeHistory from "../Pages/Master/ExchangeRate/ExchangeHistroy"; export const RouteLink = [ // =============[ Tanami ]================ @@ -50,10 +43,13 @@ export const RouteLink = [ { path: "/sponser/view-sponser/:id", Component: ViewSponser }, { path: "/sponser/edit-sponser/:id", Component: EditSponser }, - - - { path: "/exchange-rate", Component: ExchangeRate }, + { path: "/exchange-rate/currency-history/:id", Component: ExchangeHistory }, + + + + + { path: "/investment-type", Component: InvestmentType }, { path: "/investment-type/add-investment/:id", Component: AddInvestmentType }, { path: "/investment-type/add-investment", Component: AddInvestmentType }, diff --git a/src/Services/exchange.rate.service.js b/src/Services/exchange.rate.service.js index a08dca4..76fdb5d 100644 --- a/src/Services/exchange.rate.service.js +++ b/src/Services/exchange.rate.service.js @@ -30,6 +30,14 @@ export const exchangeRate = createApi({ }), invalidatesTags: ["getAllExchangeRate"], }), + + getCurrencyHistoryById: builder.query({ + query: (id) => `/currencyExchange/admin/history/${id}`, + providesTags: ["getAllExchangeRate"], + }), + + + }), }); @@ -38,4 +46,5 @@ export const { useGetAllExchangeRatesQuery, useGetExchangeRateByIdQuery, useUpdateExchangeRateMutation, + useGetCurrencyHistoryByIdQuery, } = exchangeRate; diff --git a/src/assets/propic.png b/src/assets/propic.png new file mode 100644 index 0000000..2a950b8 Binary files /dev/null and b/src/assets/propic.png differ