diff --git a/src/Components/Pagination.jsx b/src/Components/Pagination.jsx index 6532b1f..0a82531 100644 --- a/src/Components/Pagination.jsx +++ b/src/Components/Pagination.jsx @@ -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 {/* Tanami v0.1 */} - + } onClick={paginationPrev} className="link pointer" isDisabled={currentPage === 1} + aria-label="Previous Page" /> - - {isLoading ? "0": displayRange?.start} - {isLoading ? "00" :displayRange?.end} of {isLoading ? "00":totalItems} + + {isLoading ? "0" : displayRange?.start} -{" "} + {isLoading ? "00" : displayRange?.end} of{" "} + {isLoading ? "00" : totalItems} } - size={'sm'} - rounded="sm" + size={"sm"} + rounded="sm" onClick={paginationNext} className="link pointer" isDisabled={currentPage === totalPages} + aria-label="Next Page" /> ); }; -export default Pagination; \ No newline at end of file +export default Pagination; diff --git a/src/Pages/Master/InvestmentType/InvestmentType.jsx b/src/Pages/Master/InvestmentType/InvestmentType.jsx index 7bc892b..6cc9b59 100644 --- a/src/Pages/Master/InvestmentType/InvestmentType.jsx +++ b/src/Pages/Master/InvestmentType/InvestmentType.jsx @@ -70,7 +70,7 @@ const InvestmentType = () => { // toast({ // render: () => , // }); - // }, 300); + // }, 300); // ===========================[Table Filter]============================= diff --git a/src/Services/token.serivce.js b/src/Services/token.serivce.js index 1dedc92..a543760 100644 --- a/src/Services/token.serivce.js +++ b/src/Services/token.serivce.js @@ -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;