{
- {errors.name && (
+ {errors.emailAddress && (
- {errors.name.message}
+ {errors.emailAddress.message}
)}
@@ -161,7 +210,7 @@ const Login = () => {
{
- {errors.password && (
+ {errors.password_hash && (
- {errors.password.message}
+ {errors.password_hash.message}
)}
diff --git a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
index 4f056dc..4ea6b74 100644
--- a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
+++ b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
@@ -44,7 +44,7 @@ const formatDateValue = (date) => {
return [year, month, day].join("-");
};
-const EditExchangeRate = ({ id, setIsLoading, updateHistory }) => {
+const EditExchangeRate = ({ id, setIsLoading }) => {
const btnRef = useRef();
const toast = useToast();
const { isOpen, onOpen, onClose } = useDisclosure();
@@ -115,7 +115,7 @@ const EditExchangeRate = ({ id, setIsLoading, updateHistory }) => {
{
const [actionId, setActionId] = useState(false);
const [mouseEntered, setMouseEntered] = useState(false);
const [mouseEnteredId, setMouseEnteredId] = useState("");
- const [history, setHistory] = useState([]);
// ===============================[ Paginations ]
const [pageSize, setPageSize] = useState(TABLE_PAGINATION?.size);
@@ -61,33 +60,6 @@ const ExchangeRate = () => {
console.log(data?.data);
-
- const updateHistory = (id, previousRate, newRate, effectFrom) => {
- setHistory((prevHistory) => [
- ...prevHistory,
- { id, effectFrom, previousRate, newRate },
- ]);
- };
-
- // ====================================================[Table Filter]================================================================
- const filteredData = rateExchange.filter((item) => {
- // Filter by name (case insensitive)
- const name = item.fromCurr;
- const searchLower = searchTerm.toLowerCase();
- const nameMatches = name.toLowerCase().includes(searchLower);
-
- // Filter by status
- // const status = item.status;
- // const statusLower = status ? "active" : "inactive";
-
- // const statusMatches =
- // statusFilter === "all" ||
- // (statusFilter === "active" && status === true) ||
- // (statusFilter === "inactive" && status === false);
-
- return nameMatches;
- });
-
// ====================================================[Table Setup]================================================================
const tableHeadRow = [
"Sr.No",
@@ -163,7 +135,7 @@ const ExchangeRate = () => {
{
return (
@@ -11,35 +12,40 @@ const Welcome = () => {
-
+
+ {/* {
-
+ */}
);
diff --git a/src/Services/Key.merits.service.js b/src/Services/Key.merits.service.js
index 982d726..eab78ae 100644
--- a/src/Services/Key.merits.service.js
+++ b/src/Services/Key.merits.service.js
@@ -1,12 +1,13 @@
// io.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
export const keyMerits = createApi({
reducerPath: "ioService",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getKeyMerits"],
endpoints: (builder) => ({
// =====[get]
diff --git a/src/Services/bank.details.service.js b/src/Services/bank.details.service.js
index 2523a10..ad2cf57 100644
--- a/src/Services/bank.details.service.js
+++ b/src/Services/bank.details.service.js
@@ -1,13 +1,14 @@
// investorDetails.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const bankDetails = createApi({
reducerPath: "bankDetails",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getBank"],
endpoints: (builder) => ({
diff --git a/src/Services/contact.service.js b/src/Services/contact.service.js
index 2cd1450..241c657 100644
--- a/src/Services/contact.service.js
+++ b/src/Services/contact.service.js
@@ -1,13 +1,14 @@
// investorDetails.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const contact = createApi({
reducerPath: "contact",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getContact"],
endpoints: (builder) => ({
diff --git a/src/Services/deposit.request.service.js b/src/Services/deposit.request.service.js
index 3361bf0..a08ea6c 100644
--- a/src/Services/deposit.request.service.js
+++ b/src/Services/deposit.request.service.js
@@ -1,13 +1,14 @@
// investorDetails.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const depositRequest = createApi({
reducerPath: "depositRequest",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getDepositRequest"],
endpoints: (builder) => ({
getDepositRequest: builder.query({
diff --git a/src/Services/exchange.rate.service.js b/src/Services/exchange.rate.service.js
index 76fdb5d..7ad2095 100644
--- a/src/Services/exchange.rate.service.js
+++ b/src/Services/exchange.rate.service.js
@@ -1,13 +1,14 @@
// exchangeRate.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const exchangeRate = createApi({
reducerPath: "exchangeRate",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getAllExchangeRate", "getExchangeById"],
endpoints: (builder) => ({
diff --git a/src/Services/investment.documents.service.js b/src/Services/investment.documents.service.js
index 0086219..5577221 100644
--- a/src/Services/investment.documents.service.js
+++ b/src/Services/investment.documents.service.js
@@ -1,12 +1,13 @@
// io.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
export const ioService = createApi({
reducerPath: "ioService",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getInvestmentDocuments"],
diff --git a/src/Services/investment.type.service.js b/src/Services/investment.type.service.js
index bee903b..ffdd0dc 100644
--- a/src/Services/investment.type.service.js
+++ b/src/Services/investment.type.service.js
@@ -1,13 +1,14 @@
// investmentType.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const investmentType = createApi({
reducerPath: "investmentType",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getInvestmentType", "getInvestmentTypeID"],
endpoints: (builder) => ({
diff --git a/src/Services/investor.details.service.js b/src/Services/investor.details.service.js
index ccc6f73..a214abe 100644
--- a/src/Services/investor.details.service.js
+++ b/src/Services/investor.details.service.js
@@ -1,13 +1,14 @@
// investorDetails.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const investorDetails = createApi({
reducerPath: "investorDetails",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: [],
endpoints: (builder) => ({
diff --git a/src/Services/investor.transaction.service.js b/src/Services/investor.transaction.service.js
index 853572b..8277f26 100644
--- a/src/Services/investor.transaction.service.js
+++ b/src/Services/investor.transaction.service.js
@@ -1,12 +1,13 @@
// investorTransaction.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
+import { baseQuery } from "./token.serivce";
-const baseUrl = import.meta.env.VITE_API_BASE_URL + "/api";
+// const baseUrl = import.meta.env.VITE_API_BASE_URL + "/api";
// Define a service using a base URL and expected endpoints
export const investorTransaction = createApi({
reducerPath: "investorTransaction",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: [],
endpoints: (builder) => ({
getTransactions: builder.query({
diff --git a/src/Services/io.service.js b/src/Services/io.service.js
index ca28d2b..ff4916d 100644
--- a/src/Services/io.service.js
+++ b/src/Services/io.service.js
@@ -1,12 +1,13 @@
// io.service.js
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
-const baseUrl = api?.defaults.baseURL;
+// const baseUrl = api?.defaults.baseURL;
// Define a service using a base URL and expected endpoints
export const ioService = createApi({
reducerPath: "ioService",
- baseQuery: fetchBaseQuery({ baseUrl }),
+ baseQuery: baseQuery,
tagTypes: [
"prePopulate",
"getIO",
diff --git a/src/Services/sponser.service.js b/src/Services/sponser.service.js
index ccbb971..173cb46 100644
--- a/src/Services/sponser.service.js
+++ b/src/Services/sponser.service.js
@@ -1,16 +1,19 @@
//sponser.service
// Need to use the React-specific entry point to import createApi
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-import { api } from "./api.service";
+// import { api } from "./api.service";
+import { baseQuery } from "./token.serivce";
+
+// const baseUrl = api?.defaults.baseURL;
+
-const baseUrl = api?.defaults.baseURL;
// const baseUrl = `${import.meta.env.VITE_API_BASE_URL}/${import.meta.env.VITE_API_VERSION}`
// Define a service using a base URL and expected endpoints
export const sponserMaster = createApi({
reducerPath: "sponserMaster",
- baseQuery: fetchBaseQuery({ baseUrl: baseUrl }),
+ baseQuery: baseQuery,
tagTypes: ["getSponser"],
endpoints: (builder) => ({
diff --git a/src/Services/token.serivce.js b/src/Services/token.serivce.js
new file mode 100644
index 0000000..0b92df2
--- /dev/null
+++ b/src/Services/token.serivce.js
@@ -0,0 +1,47 @@
+import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
+
+// Define a base query function with RTK Query
+export const baseQuery = fetchBaseQuery({
+ baseUrl: 'https://sprint4.tanami.betadelivery.com/api/v1',
+ prepareHeaders: (headers) => {
+ const token = localStorage.getItem('accessToken');
+ if (token) {
+ headers.set('x-auth-token', `${token}`);
+ }
+ return headers;
+ },
+});
+
+// Create an RTK Query API slice
+export const apiSlice = createApi({
+ reducerPath: 'api',
+ baseQuery: baseQuery,
+ endpoints: (builder) => ({
+ login: builder.mutation({
+ query: (credentials) => ({
+ url: '/auth/admin',
+ method: 'POST',
+ body: credentials,
+ }),
+ async onQueryStarted(arg, { dispatch, queryFulfilled }) {
+ try {
+ const { data } = await queryFulfilled;
+ // Store tokens in local storage
+ localStorage.setItem('accessToken', data?.data?.access?.token);
+ localStorage.setItem('refreshToken', data?.data?.refresh?.token);
+ } catch (error) {
+ console.error('Login failed:', error);
+ }
+ },
+ }),
+ refreshToken: builder.mutation({
+ query: (refreshToken) => ({
+ url: '/refresh_token',
+ method: 'POST',
+ body: { refreshToken },
+ }),
+ }),
+ }),
+});
+
+export const { useLoginMutation, useRefreshTokenMutation } = apiSlice;
diff --git a/src/Store/Store.js b/src/Store/Store.js
index 39a2f72..204f96b 100644
--- a/src/Store/Store.js
+++ b/src/Store/Store.js
@@ -6,14 +6,16 @@ import { exchangeRate } from "../Services/exchange.rate.service";
import { ioService } from "../Services/io.service";
import { investorDetails } from "../Services/investor.details.service";
import { investorTransaction } from "../Services/investor.transaction.service";
-import { api } from "../Services/api.service";
-import { keyMerits } from "../Services/Key.merits.service";
+// import { api } from "../Services/api.service";
+// import { keyMerits } from "../Services/Key.merits.service";
import { bankDetails } from "../Services/bank.details.service";
import { contact } from "../Services/contact.service";
import { depositRequest } from "../Services/deposit.request.service";
+import { apiSlice, baseQuery } from "../Services/token.serivce";
export const store = configureStore({
reducer: {
+ [apiSlice.reducerPath]: apiSlice.reducer,
[sponserMaster.reducerPath]: sponserMaster.reducer,
[investmentType.reducerPath]: investmentType.reducer,
[exchangeRate.reducerPath]: exchangeRate.reducer,
@@ -28,9 +30,10 @@ export const store = configureStore({
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
thunk: {
- extraArgument: api, // Pass Axios instance as extra argument
+ extraArgument: baseQuery, // Pass Axios instance as extra argument
},
}).concat(
+ apiSlice.middleware,
sponserMaster.middleware,
investmentType.middleware,
exchangeRate.middleware,
diff --git a/src/Validations/Validations.js b/src/Validations/Validations.js
index 180cd7d..b34aaa5 100644
--- a/src/Validations/Validations.js
+++ b/src/Validations/Validations.js
@@ -1,7 +1,7 @@
import * as Yup from "yup";
export const validationSchema = Yup.object().shape({
- name: Yup.string().required("Owner name is required"),
+ name: Yup.string().required("Email name is required"),
password: Yup.string().required("Password is required"),
});