diff --git a/.env b/.env
index 333327d..9b5f3f2 100644
--- a/.env
+++ b/.env
@@ -1,3 +1,3 @@
-REACT_APP_BASE_URL="https://rubix.betadelivery.com/api"
-REACT_APP_IMAGE_URL="https://rubix.betadelivery.com/"
-REACT_APP_ENVIRONMENT="development"
\ No newline at end of file
+VITE_API_BASE_URL="https://rubix.betadelivery.com/api"
+VITE_API_IMAGE_URL="https://rubix.betadelivery.com"
+VITE_API_ENVIRONMENT="development"
\ No newline at end of file
diff --git a/src/Components/Banner/BannerEdit.jsx b/src/Components/Banner/BannerEdit.jsx
index de9a1fd..54d9879 100644
--- a/src/Components/Banner/BannerEdit.jsx
+++ b/src/Components/Banner/BannerEdit.jsx
@@ -37,6 +37,7 @@ import Header from "../../Components/Header";
import CommunityBannerCard from "../../Pages/Community/CommunityBannerCard";
import BannerMainCard from "./BannerMainCard";
import ToastBox from "../ToastBox";
+import { IMAGE_URI } from "../../Constants/Paginations";
const BannerEdit = ({isLoading, data, updateBanner, navigateTo, refetch, center}) => {
const { id } = useParams();
@@ -78,7 +79,7 @@ const BannerEdit = ({isLoading, data, updateBanner, navigateTo, refetch, center}
useEffect(() => {
if (data?.data) {
setSelectedImage(
- `https://rubix.betadelivery.com/${data?.data?.banner_image}`
+ `${IMAGE_URI}/${data?.data?.banner_image}`
);
setValue("heading", data?.data?.Heading);
setValue("sub_heading", data?.data?.sub_heading);
diff --git a/src/Components/Banner/BannerMainCard.jsx b/src/Components/Banner/BannerMainCard.jsx
index 0e2826a..fe34985 100644
--- a/src/Components/Banner/BannerMainCard.jsx
+++ b/src/Components/Banner/BannerMainCard.jsx
@@ -4,7 +4,7 @@ import React from 'react'
const BannerMainCard = ({heading, subHeading, buttonTitle, imgLink, center}) => {
- const words = heading.split(' ');
+ const words = heading?.split(' ');
const firstThreeWords = words.slice(0, 3).join(' ');
const remainingWords = words.slice(3).join(' ');
diff --git a/src/Components/Banner/BannerTable.jsx b/src/Components/Banner/BannerTable.jsx
index dacbfcb..d98978e 100644
--- a/src/Components/Banner/BannerTable.jsx
+++ b/src/Components/Banner/BannerTable.jsx
@@ -22,7 +22,7 @@ import CustomAlertDialog from "../../Components/CustomAlertDialog";
import DataTable from "../DataTable/DataTable";
import Header from "../Header";
import { OPACITY_ON_LOAD } from "../../Layout/animations";
-import { TABLE_PAGINATION } from "../../Constants/Paginations";
+import { IMAGE_URI, TABLE_PAGINATION } from "../../Constants/Paginations";
import {
CheckCircleIcon,
ChevronLeftIcon,
@@ -159,7 +159,7 @@ const BannerCommunity = ({
h={14}
rounded={4}
objectFit="cover"
- src={`https://rubix.betadelivery.com/${item.banner_image}`}
+ src={`${IMAGE_URI}/${item.banner_image}`}
alt="Dan Abramov"
/>
),
diff --git a/src/Components/TabularView/TabularView.jsx b/src/Components/TabularView/TabularView.jsx
index 00541ee..de52be7 100644
--- a/src/Components/TabularView/TabularView.jsx
+++ b/src/Components/TabularView/TabularView.jsx
@@ -24,6 +24,7 @@ const TabularView = ({
setPageSize,
totalPages,
noDataTitle,
+ totalItems,
}) => {
const [displayRange, setDisplayRange] = useState({
start: TABLE_PAGINATION?.page,
@@ -38,15 +39,14 @@ const TabularView = ({
};
const paginationNext = () => {
- const totalPage = Math.ceil(totalPages / pageSize);
- if (currentPage < totalPage) {
+ if (currentPage < totalPages) {
setCurrentPage(currentPage + 1);
updateDisplayRange(currentPage + 1);
}
};
const updateDisplayRange = (page) => {
const start = (page - 1) * pageSize + 1;
- const end = Math.min(start + pageSize - 1, totalPages);
+ const end = Math.min(start + pageSize - 1, totalItems);
setDisplayRange({ start, end });
};
@@ -100,7 +100,9 @@ const TabularView = ({
value={pageSize}
onChange={(e) => setPageSize(e.target.value)}
>
-
+
+
+
@@ -109,7 +111,7 @@ const TabularView = ({
className=" link rounded-3 pointer"
/>
- {displayRange.start} - {displayRange.end} of {totalPages}
+ {displayRange.start} - {displayRange.end} of {totalItems}
{
const [deleteIsLoading, setDeleteIsLoading] = useState(false);
const [searchTerm, setSearchTerm] = useState("");
const [statusFilter, setStatusFilter] = useState("all");
- const blog = useGetBlogQuery();
+ const blog = useGetBlogQuery({ page: currentPage, size: pageSize });
const [deleteBlog] = useDeleteBlogMutation();
const [updateBlogStatus] = useUpdateBlogStatusMutation();
// ====================================================[Functions]===================================================================
@@ -280,7 +280,8 @@ const BlogsAndArticles = () => {
setPageSize={setPageSize}
currentPage={currentPage}
setCurrentPage={setCurrentPage}
- totalPages={blog?.data?.data?.totalItems}
+ totalItems={blog?.data?.data?.totalItems}
+ totalPages={blog?.data?.data?.totalPages}
noDataTitle={'blog'}
/>
{
// ====================================================[Hooks]===================================================================
@@ -68,20 +75,16 @@ const Community = () => {
const [searchTerm, setSearchTerm] = useState("");
const [statusFilter, setStatusFilter] = useState("all");
-
-
const [pageSize, setPageSize] = useState(TABLE_PAGINATION?.size);
const [currentPage, setCurrentPage] = useState(1);
-
- const [displayRange, setDisplayRange] = useState({ start: TABLE_PAGINATION?.page, end: pageSize });
-
-
+ const [displayRange, setDisplayRange] = useState({
+ start: TABLE_PAGINATION?.page,
+ end: pageSize,
+ });
const community = useGetCommunityQuery({ page: currentPage, size: pageSize });
-
-
const [deleteCommunity] = useDeleteCommunityMutation();
const [updateCommunityStatus] = useUpdateCommunityStatusMutation();
@@ -119,7 +122,10 @@ const Community = () => {
if (response?.data?.statusCode === 201) {
toast({
render: () => (
-
+
),
});
}
@@ -187,9 +193,11 @@ const Community = () => {
),
Description: (
+
{item?.description}
+
),
"Linked In": (
@@ -254,8 +262,6 @@ const Community = () => {
};
});
-
-
// ====================================================[Pagination Setup]================================================================
const paginationPrev = () => {
if (currentPage > 1) {
@@ -273,232 +279,35 @@ const Community = () => {
};
const updateDisplayRange = (page) => {
const start = (page - 1) * pageSize + 1;
- const end = Math.min(start + pageSize - 1, community?.data?.data?.totalItems);
+ const end = Math.min(
+ start + pageSize - 1,
+ community?.data?.data?.totalItems
+ );
setDisplayRange({ start, end });
};
-
-
-
-
-
-
return (
-
-
-
- {/* */}
- {/*
- Community banner
-
-
-
- }
- backgroundColor={"purple.700"}
- _hover={{
- backgroundColor: "purple.800",
- }}
- color={"whitesmoke"}
- size="sm"
- >
- Create banner
-
-
- */}
-
- {/* */}
- {/* {communityBanner?.isLoading ? :
-
-
- {banner?.Heading}
-
-
- {banner?.sub_heading}
-
-
-
- Last update: {formatDate(banner?.createdAt)}
- } */}
-
- {/* {communityBanner?.isLoading
- ? Array.from({ length: 3 }).map((_, index) => (
-
- ))
- : banner?.map(
- ({
- id,
- CTO_button_title,
- banner_image,
- Heading,
- createdAt,
- sub_heading,
- }) => (
-
- )
- )}
- */}
-
-
- {/* ====================================================[ Top bar ]================================================================ */}
-
- {/* */}
-
-
- {/*
-
- Community cards
-
- */}
-
- setSearchTerm(e.target.value)}
- />
-
-
-
-
-
-
-
-
-
- {displayRange.start} - {displayRange.end} of{" "}
- {community?.data?.data?.totalItems}
-
-
-
-
-
-
-
-
- {/* ====================================================[ Table ]================================================================ */}
-
+
- {/* */}
-
- {/*
-
- Community cards
-
-
-
-
- */}
-
{/* ====================================================[ Alert ]================================================================ */}
setDeleteAlert(false)}
@@ -507,7 +316,7 @@ const Community = () => {
message={"Are you sure you want to delete community?"}
isLoading={deleteIsLoading}
/>
-
+ >
);
};
diff --git a/src/Pages/Events/Events.jsx b/src/Pages/Events/Events.jsx
index 5b84ae3..95f1819 100644
--- a/src/Pages/Events/Events.jsx
+++ b/src/Pages/Events/Events.jsx
@@ -28,6 +28,7 @@ import { Link as RouterLink } from "react-router-dom";
import { formatDate } from "../../Components/Functions/UTCConvertor";
import CustomAlertDialog from "../../Components/CustomAlertDialog";
import ToastBox from "../../Components/ToastBox";
+import TabularView from "../../Components/TabularView/TabularView";
const Events = () => {
// ====================================================[Hooks]===================================================================
@@ -207,88 +208,27 @@ const Events = () => {
});
return (
-
-
+ >
);
};
diff --git a/src/Pages/Faq/Faq.jsx b/src/Pages/Faq/Faq.jsx
index 8566740..9f4fc8b 100644
--- a/src/Pages/Faq/Faq.jsx
+++ b/src/Pages/Faq/Faq.jsx
@@ -40,19 +40,15 @@ const Faq = () => {
const [actionStatus, setActionStatus] = useState(null);
const [deleteIsLoading, setDeleteIsLoading] = useState(false);
- const faqPage = useCreateFaqMutation({
- page: currentPage,
- size: pageSize,
- });
+ const faqPage = useCreateFaqMutation();
+
+ const faq = useGetFaqQuery({ page: currentPage, size: pageSize });
- const { data } = useGetFaqQuery();
- const faq = data?.data?.rows;
- // console.log(faq);
const [deleteFaq] = useDeleteFaqMutation();
const [updateFaqStatus] = useUpdateFaqStatusMutation();
- const filteredData = faq?.filter((item) => {
+ const filteredData = faq?.data?.data?.rows?.filter((item) => {
// Filter by name (case insensitive)
const name = item.question;
const searchLower = searchTerm.toLowerCase();
@@ -241,7 +237,8 @@ const Faq = () => {
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={faq?.data?.data?.totalPages}
- noDataTitle={"faq"}
+ totalItems={faq?.data?.data?.totalItems}
+ noDataTitle={"FAQ's"}
/>
setDeleteAlert(false)}
diff --git a/src/Pages/Login.jsx b/src/Pages/Login.jsx
index aa04cdf..dbf16a6 100644
--- a/src/Pages/Login.jsx
+++ b/src/Pages/Login.jsx
@@ -62,11 +62,12 @@ const Login = () => {
// dispatch(loginUser(true));
setIsAuthenticate(false)
setIsLoading(false);
+
toast({
- title: `Invalid Credentials`,
- status: "error",
- isClosable: true,
- })
+ render: () => (
+
+ ),
+ });
reset();
navigate("/login");
}, 2000);
diff --git a/src/Pages/NewLetter/NewsLetter.jsx b/src/Pages/NewLetter/NewsLetter.jsx
index c1cb817..08c9aa2 100644
--- a/src/Pages/NewLetter/NewsLetter.jsx
+++ b/src/Pages/NewLetter/NewsLetter.jsx
@@ -50,7 +50,7 @@ const NewsLetter = () => {
const [actionStatus, setActionStatus] = useState(null);
const [deleteIsLoading, setDeleteIsLoading] = useState(false);
- const { data } = useGetNewsLetterQuery();
+ const { data } = useGetNewsLetterQuery({ page: currentPage, size: pageSize });
// // console.log(useGetNewsletterQuery);
const email = data?.data?.rows;
// console.log(email);
@@ -123,20 +123,20 @@ const NewsLetter = () => {
const extractedArray = email?.map((item, index) => {
return {
Title: (
-
-
-
- {item?.email}
-
-
-
+
+
+
+ {item?.email}
+
+
+
),
"Created At": (
{
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={email?.data?.data?.totalPages}
+ totalItems={email?.data?.data?.totalItems}
noDataTitle={"NewsLetter"}
/>
{
];
const extractedArray = filteredData?.map((item, index) => {
return {
- Title:
- {item?.title},
+ Title: {item?.title},
Description: (
{
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={news?.data?.data?.totalPages}
- noDataTitle={'news'}
+ totalItems={news?.data?.data?.totalItems}
+ noDataTitle={"news"}
/>
setDeleteAlert(false)}
diff --git a/src/Pages/Partners/Partner.jsx b/src/Pages/Partners/Partner.jsx
index ee63638..78381ec 100644
--- a/src/Pages/Partners/Partner.jsx
+++ b/src/Pages/Partners/Partner.jsx
@@ -145,52 +145,6 @@ const Partner = () => {
};
});
- // ====================================================[Functions]===================================================================
- // const handleDelete = async (communityId, status) => {
- // if (status) {
- // return toast({
- // render: () => (
- //
- // ),
- // });
- // }
-
- // try {
- // // Trigger the mutation
- // setDeleteIsLoading(true);
- // await deletePartners(communityId)
- // .then((response) => {
- // // Handle the response here
- // // console.log("Mutation response:", response?.data?.statusCode);
- // // console.log("Mutation response:", response?.data?.message);
-
- // if (response?.data?.statusCode === 201) {
- // setDeleteIsLoading(false);
- // setDeleteAlert(false);
- // toast({
- // render: () => (
- //
- // ),
- // });
- // }
- // })
- // .catch((error) => {
- // // console.error("Error creating community:", error);
- // setDeleteIsLoading(false);
- // setDeleteAlert(false);
- // });
- // } catch (error) {
- // // Handle errors
- // // console.log("Error deleting community:", error);
- // }
- // };
-
const handleDelete = async (communityId, status) => {
if (status) {
return toast({
@@ -290,6 +244,7 @@ const Partner = () => {
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={partners?.data?.data?.totalPages}
+ totalItems={partners?.data?.data?.totalItems}
noDataTitle={"partners"}
/>
{
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={policy?.data?.data?.totalPages}
+ totalItems={policy?.data?.data?.totalItems}
noDataTitle={"policy"}
/>
{
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={terms?.data?.data?.totalPages}
+ totalItems={terms?.data?.data?.totalItems}
noDataTitle={"terms"}
/>
{
currentPage={currentPage}
setCurrentPage={setCurrentPage}
totalPages={useCase?.data?.data?.totalPages}
+ totalItems={useCase?.data?.data?.totalItems}
noDataTitle={"usecase"}
/>
{
const extractedArray = filteredData?.map((item, index) => {
return {
-
- Title: (
-
-
-
- {item?.title}
-
+ Title: (
+
+
+
+ {item?.title}
+
+
),
Description: (
@@ -92,7 +92,7 @@ const Videos = () => {
label={item?.description}
bg="blue.200"
>
-
+
{item?.description}
@@ -182,10 +182,6 @@ const Videos = () => {
}
};
-
-
-
-
const handleUpdateStatus = async (id) => {
try {
// Trigger the mutation
@@ -211,13 +207,6 @@ const Videos = () => {
}
};
-
-
-
-
-
-
-
return (
<>
{
setPageSize={setPageSize}
currentPage={currentPage}
setCurrentPage={setCurrentPage}
+ totalItems={videos?.data?.data?.data?.totalItems}
totalPages={videos?.data?.data?.data?.totalPages}
- noDataTitle={'video'}
+ noDataTitle={"video"}
/>
setDeleteAlert(false)}
@@ -251,6 +241,4 @@ const Videos = () => {
export default Videos;
-
-
-// Event & Community Pending
\ No newline at end of file
+// Event & Community Pending
diff --git a/src/Pages/Whitepapers/Whitepapers.jsx b/src/Pages/Whitepapers/Whitepapers.jsx
index c7ddf0b..096b1a0 100644
--- a/src/Pages/Whitepapers/Whitepapers.jsx
+++ b/src/Pages/Whitepapers/Whitepapers.jsx
@@ -234,6 +234,7 @@ const Whitepapers = () => {
setPageSize={setPageSize}
currentPage={currentPage}
setCurrentPage={setCurrentPage}
+ totalItems={whitePaper?.data?.data?.data?.totalItems}
totalPages={whitePaper?.data?.data?.data?.totalPages}
noDataTitle={'whitepaper'}
/>
diff --git a/src/Routes/Routes.js b/src/Routes/Routes.js
index 85fcdcf..c18d0ea 100644
--- a/src/Routes/Routes.js
+++ b/src/Routes/Routes.js
@@ -96,7 +96,7 @@ export const RouteLink = [
{ path: "/community", Component: Community },
{ path: "community/view/:id", Component: ComunityViewPage },
{ path: "community/edit/:id", Component: ComunityEditPage },
- { path: "community/add-comunity", Component: AddComunity },
+ { path: "community/add-community", Component: AddComunity },
// =============[ Community banner ]================
{ path: "banner/banner-community", Component: BannerCommunity },
diff --git a/src/Services/api.service.js b/src/Services/api.service.js
index 244263e..a78ddca 100644
--- a/src/Services/api.service.js
+++ b/src/Services/api.service.js
@@ -1,7 +1,9 @@
// Need to use the React-specific entry point to import createApi
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
-const baseUrl = "https://rubix.betadelivery.com/api";
+
+
+const baseUrl = import.meta.env.VITE_API_BASE_URL
// Define a service using a base URL and expected endpoints
export const rubixApi = createApi({
@@ -40,7 +42,7 @@ export const rubixApi = createApi({
"getFaq",
"getPartners",
- 'getNewsLetter',
+ "getNewsLetter",
],
endpoints: (builder) => ({
// ===============[ Community cards endpoints ]=======================
@@ -246,7 +248,7 @@ export const rubixApi = createApi({
// ================[ Blog endpoints ]====================
getBlog: builder.query({
- query: () => "/admin/blog",
+ query: ({ page, size }) => `/admin/blog?page=${page}&size=${size}`,
providesTags: ["getBlog"],
}),
getBlogById: builder.query({
@@ -538,11 +540,9 @@ export const rubixApi = createApi({
invalidatesTags: ["getWhitePaper"],
}),
-
-
// ===============[ Usecase endpoints ]=======================
getUsecase: builder.query({
- query: () => "/admin/tech",
+ query: ({ page, size }) => `/admin/tech?page=${page}&size=${size}`,
providesTags: ["getUseCase"],
}),
createUsecase: builder.mutation({
@@ -581,12 +581,10 @@ export const rubixApi = createApi({
invalidatesTags: ["getUseCase"],
}),
-
-
-
// ===============[ Terms endpoints ]=======================
getTerms: builder.query({
- query: () => "/admin/term-condition",
+ query: ({ page, size }) =>
+ `/admin/term-condition?page=${page}&size=${size}`,
providesTags: ["getTerms"],
}),
deleteTerms: builder.mutation({
@@ -626,7 +624,7 @@ export const rubixApi = createApi({
// ===============[ Terms endpoints ]=======================
getPolicy: builder.query({
- query: () => "/admin/policy",
+ query: ({ page, size }) => `/admin/policy?page=${page}&size=${size}`,
providesTags: ["getPolicy"],
}),
deletePolicy: builder.mutation({
@@ -666,7 +664,7 @@ export const rubixApi = createApi({
// ===============[ Faq endpoints ]=======================
getFaq: builder.query({
- query: () => "/admin/faq",
+ query: ({ page, size }) => `/admin/faq?page=${page}&size=${size}`,
providesTags: ["getFaq"],
}),
deleteFaq: builder.mutation({
@@ -704,10 +702,9 @@ export const rubixApi = createApi({
providesTags: ["getFaq"],
}),
-
// ===============[ Cards endpoints ]=======================
getPartners: builder.query({
- query: () => "/admin/card",
+ query: ({ page, size }) => `/admin/card?page=${page}&size=${size}`,
providesTags: ["getPartners"],
}),
deletePartners: builder.mutation({
@@ -747,8 +744,8 @@ export const rubixApi = createApi({
// ===============[ Cards endpoints ]=======================
getNewsLetter: builder.query({
- query: () => 'newsLetter/request',
- providesTags: ['getNewsLetter'],
+ query: ({ page, size }) => `newsLetter/request?page=${page}&size=${size}`,
+ providesTags: ["getNewsLetter"],
}),
deleteEmail: builder.mutation({
query: (id) => ({
@@ -758,14 +755,12 @@ export const rubixApi = createApi({
invalidatesTags: ["getNewsLetter"],
}),
getNewsLetterEmail: builder.query({
- query: () => 'newsLetter/request',
- providesTags: ['getNewsLetter'],
+ query: () => "newsLetter/request",
+ providesTags: ["getNewsLetter"],
}),
}),
});
-
-
export const {
useGetCommunityQuery,
useGetCommunityByIdQuery,
@@ -858,8 +853,6 @@ export const {
useGetUsecaseQuery,
useUpdateUsecaseStatusMutation,
-
-
useGetTermsQuery,
useDeleteTermsMutation,
useCreateTermsMutation,
@@ -891,5 +884,4 @@ export const {
useGetNewsLetterQuery,
useDeleteEmailMutation,
useGetNewsLetterEmailQuery,
-
} = rubixApi;