This commit is contained in:
2024-10-01 17:48:42 +05:30
3 changed files with 93 additions and 78 deletions

View File

@@ -1,11 +1,17 @@
import React, { useState } from 'react';
import { Select, HStack, Text, Box, IconButton } from '@chakra-ui/react';
import { ChevronLeftIcon, ChevronRightIcon } from '@chakra-ui/icons';
import React, { useState } from "react";
import { Select, HStack, Text, Box, IconButton } from "@chakra-ui/react";
import { ChevronLeftIcon, ChevronRightIcon } from "@chakra-ui/icons";
const Pagination = ({ pageSize, setPageSize, totalItems,isLoading, setCurrentPage, currentPage }) => {
const Pagination = ({
pageSize,
setPageSize,
totalItems,
isLoading,
setCurrentPage,
currentPage,
}) => {
// const [] = useState(itemsPerPageOptions[0]);
const totalPages = Math.ceil(totalItems / pageSize);
const handlePageSizeChange = (e) => {
@@ -35,45 +41,54 @@ const Pagination = ({ pageSize, setPageSize, totalItems,isLoading, setCurrentPag
{/* <Text className='web-text-small'>Tanami v0.1</Text> */}
<HStack>
<Select
className="pointer web-text-small"
width={"90px"}
rounded="sm"
size="sm"
value={pageSize}
onChange={handlePageSizeChange}
>
{[ 15, 20, 30]?.map((size) => (
<option key={size} value={size}>
{size}
</option>
))}
</Select>
<Select
className="pointer web-text-small"
width={"90px"}
rounded="sm"
size="sm"
value={pageSize}
onChange={handlePageSizeChange}
>
{[15, 20, 30]?.map((size) => (
<option key={size} value={size}>
{size}
</option>
))}
</Select>
<IconButton
mt={1}
size={'sm'}
rounded="sm"
mt={1}
size={"sm"}
rounded="sm"
icon={<ChevronLeftIcon />}
onClick={paginationPrev}
className="link pointer"
isDisabled={currentPage === 1}
aria-label="Previous Page"
/>
<Text w={"81px"} display={'flex'} justifyContent={'center'} className="web-text-medium" as={"span"}>
{isLoading ? "0": displayRange?.start} - {isLoading ? "00" :displayRange?.end} of {isLoading ? "00":totalItems}
<Text
w={"81px"}
display={"flex"}
justifyContent={"center"}
className="web-text-medium"
as={"span"}
>
{isLoading ? "0" : displayRange?.start} -{" "}
{isLoading ? "00" : displayRange?.end} of{" "}
{isLoading ? "00" : totalItems}
</Text>
<IconButton
mt={1}
mt={1}
icon={<ChevronRightIcon />}
size={'sm'}
rounded="sm"
size={"sm"}
rounded="sm"
onClick={paginationNext}
className="link pointer"
isDisabled={currentPage === totalPages}
aria-label="Next Page"
/>
</HStack>
</HStack>
);
};
export default Pagination;
export default Pagination;

View File

@@ -70,7 +70,7 @@ const InvestmentType = () => {
// toast({
// render: () => <ToastBox message={"Status changed succesfully.!"} />,
// });
// }, 300);
// }, 300);
// ===========================[Table Filter]=============================

View File

@@ -25,57 +25,57 @@ export const baseQuery = async (args, api, extraOptions) => {
},
})(args, api, extraOptions);
if (result.error && result.error.status === 401) {
if (result.error && result.error.status === 403) {
// Handle token refresh
// const refreshToken = localStorage.getItem("refreshToken");
// if (refreshToken) {
// try {
// const refreshResult = await fetchBaseQuery({
// baseUrl: import.meta.env.VITE_BAS_URL,
// })(
// {
// url: "/auth/user/regenerate-token",
// method: "POST",
// body: { refreshToken },
// },
// api,
// extraOptions
// );
const refreshToken = localStorage.getItem("refreshToken");
if (refreshToken) {
try {
const refreshResult = await fetchBaseQuery({
baseUrl: import.meta.env.VITE_BAS_URL,
})(
{
url: "/auth/user/regenerate-token",
method: "POST",
body: { refreshToken },
},
api,
extraOptions
);
// if (refreshResult.data) {
// // Save new tokens
// localStorage.setItem("accessToken", refreshResult.data.access.token);
// localStorage.setItem(
// "refreshToken",
// refreshResult.data.refresh.token
// );
// localStorage.setItem(
// "refreshTokenExp",
// refreshResult.data.refresh.expires
// );
if (refreshResult.data) {
console.log('hit');
console.log(refreshResult?.data?.data?.access?.token);
// Save new tokens
localStorage.setItem("accessToken", refreshResult?.data?.data?.access?.token);
localStorage.setItem(
"refreshToken",
refreshResult?.data?.data?.refresh?.token
);
localStorage.setItem(
"refreshTokenExp",
refreshResult.data?.data?.refresh.expires
);
// // Retry the original request with the new token
// result = await fetchBaseQuery({
// baseUrl: import.meta.env.VITE_BAS_URL,
// prepareHeaders: (headers) => {
// const token = localStorage.getItem("accessToken");
// if (token) {
// headers.set("x-auth-token", token);
// }
// return headers;
// },
// })(args, api, extraOptions);
// }
// } catch (err) {
// console.error("Failed to refresh token:", err);
// // Handle refresh failure (e.g., redirect to login)
// }
// }
localStorage.removeItem("accessToken");
localStorage.removeItem("refreshToken");
Cookies.remove("isAuthenticated", { path: '/login' });
// Retry the original request with the new token
result = await fetchBaseQuery({
baseUrl: import.meta.env.VITE_BAS_URL,
prepareHeaders: (headers) => {
const token = localStorage.getItem("accessToken");
if (token) {
headers.set("x-auth-token", token);
}
return headers;
},
})(args, api, extraOptions);
}else{
console.log('refresh failed');
}
} catch (err) {
console.error("Failed to refresh token:", err);
// Handle refresh failure (e.g., redirect to login)
}
}
}
return result;